Additions
Changes
- Adds permission checks to /bending add <element/sub-element> command
- /bending add <element> checks if the player has the permission bending.command.add.<element>
- /bending add <sub-element> checks if the player has the permission bending.command.add.<sub-element>
- /bending add all checks if the player has the permission to add each element the command is trying to apply
- Added SpoutHop
- When using Water spout, you can hold sneak and left click to use the spout to jump foward
- Configurable in the config
- Inspired by an old WaterSpout bug that people wished would return
- Added ChargeTimeout option for Torrent
- Acts as a duration timer for spinning the water around you with Torrent
Fixes
- ProjectKorra has been updated to now work on Spigot 1.16 to 1.20.6
- Optimized TempBlock reverting
- Reduced the lags caused from TempBlocks reverting. The main cause was due to removing blocks going through the entire queue to find the block to remove, when it could have just been removed from the top.
- Additionally, there is no longer checks to see if it is already in the queue in some instances. This also caused a lot of pointless CPU processing
- Optimized AirBlast putting out fire or triggering redstone related blocks. It now does it for every block along the path, and not just every single tick at the current location (so it would miss 33% of blocks)
- Made the database commit all uncommitted changes when the connection is closed
- JetBlaze/JetBlast can no longer be used while the other combo is in use
- Fixed Flight not checking perms for the different slot abilities
- Fixed /b cooldown command not respecting permissions
- Fixed grass not being labelled short_grass on versions at and above 1.20.3
- Fixed illumination digging into the ground in 1.16
- Fixed bending damage that bypasses armor not bypassing protection enchantments
- Fixed TempArmor duplicating items
- Fixed waterbending ice suffocating players (https://github.com/ProjectKorra/ProjectKorra/issues/1309)
- Fixed IceSpike and IceBlast working when the source is removed before you click
- Fixed Multiability slots not updating when they start/end
- Fixed Extraction turning deepslate ores into stone when used
- Fixed MythicLib causing you to use abilities when mobs are hit
- Fixed passives being toggled with bending when Properties.TogglePassivesWithAllBending is disabled (https://github.com/ProjectKorra/ProjectKorra/issues/1288)
- Fixed attributes not being updated after the ability starts
- Fixed custom elements that aren't build right causing crashes due to their lack of name
- Fixed TempBlocks attempting to revert in unloaded worlds (https://github.com/ProjectKorra/ProjectKorra/issues/1319)
- Fixed Citizen NPCs causing errors due to no BendingPlayer existing
- Fixed minor memory leak in RegionProtection
- Fixes issue where attribute modifiers on the same attribute, with the same priority, type, and value would not stack
- Fixed issue where a mistimed activation resulted in no JetBlast/JetBlaze creation while still going on cooldown
- Fixed lightning creating infinite water arcs when used on a waterlogged copper slab (https://github.com/ProjectKorra/ProjectKorra/issues/1311)
Additions
Misc. Changes
- Added a new configuration option to control the revert duration of WaterWave's trail.
- Added a new additional constructor to the MultiAbilityInfoSub class with one new ChatColor parameter that allows for the MutliAbilities sub-abilities to have a custom color.
- Thanks @Sammycocobear for this added functionality!
Fixes
- Changed the logic of MultiAbilityInfoSub's getAbilityColor() method to allow for the implementation of individual colors.
- Updated Lands support to 6.26.X and higher.
- Changed Combustion to work better when FireGrief is false.
- Muted paper timing spam.
- Fixed BendingBoard slowly disappearing as more combos are used over time.
- Fixed Temp Lava not doing damage to entities if it doesn't belong to any ability. (#1280)
- Thanks @Aztlfor figuring out this issue!
- Fixed passives not working in protected regions. (#1278)
- Fixed dynamic sourcing not working as intended for left click moves.
- - This issue required double clicking for a lot of moves like RaiseEarth and Torrent. (#1277)
- Fixed OctopusForm ice not reverting if you log out
- Fixed placing blocks in Surge shield (SurgeWall) deleting blocks (#1216)
- To fix Surge deleting blocks, Surge was switched to use the new TempBlock system. Previously, it just reverted all blocks in that spot, so making it revert individual TempBlocks stops it from removing blocks placed within its water.
- Fixed day/night messages being the wrong way around
- Fixed damaging ArmorStands with bending causing errors.
- Fixed StackOverFlowException when using a certain damageEntity method.
- Fixed sourcing and BendingPreview working in disabled worlds.
- Fixed bending reload command erroring without PAPI installed.
- Fixed IllegalArgumentException: string cannot be null when the sub color for an element isn't provided/was deleted from the config.
- Fixed IceWave leaving behind some ice blocks that can't be melted when freezing players.
- Thanks @Aztl for fixing this issue!
Fixes
- Fixed display command using the incorrect permission check for SubElements
- Fixed help command showing the quickbind for abilities users didn't have the element for
- Fixed exception that occurs when displaying Avatar abilities
- Fixed melting WaterArms spear ice causing water to be left behind sometimes when melting with PhaseChange (#1274)
- Fixed multiple combos cooldowns causing exceptions sometimes in the BendingBoard
- Fixed AirSwipe angle not working when facing upwards
- Fixed PhaseChange working in claims while the user was outside of the claim, no matter the user
Additions
Changes
- Bending can now bypass a percentage of armor
- Defaults to 50%
- Configurable with specific elements and abilities
- Added new PAPI placeholders
- %projectkorra_slot% (The currently selected bind)
- %projectkorra_subelements% (All subs the player has)
- %projectkorra_cooldown_<ability>% (The cooldown for ability)
- %projectkorra_cooldown_slot% (The cooldown for the currently selected slot)
- %projectkorra_cooldown_slot<1-9>% (The cooldown for said bind)
- Added a list of placeholders for PAPI to use. This can be seen in /papi info projectkorra
Dev Changes
- Bloodbending will no longer work on Bloodless mobs. Configurable.
- Waterbending now works from filled cauldrons (with water and snow)
- Redone the /b display command
- Everything now displays text when you hover over it
- You can now click the abilities in chat to show the /b help of that move. When you click subelements or combos, it will display them
- The format is completely configurable
- /b help <ability> now shows a "quick bind" menu for quickly binding the ability to your slots. Configurable.
- Removed "x ability is disabled" messages in logs when abilities are disabled
- Updated the /b debug command
- Updated Lightning
- Is now attracted to copper and lightning rods
- Will chain between them
- Can now transform vanilla mobs like vanilla lightning does. Configurable.
- Removed Kingdoms support. Kingdoms will be supporting PK instead of PK supporting Kingdoms
- Removed the ProjectKorra website reference from /b help <element>
- Updated the PK Updater to not show "There is a new update" when running beta builds
- Updated contributor list
- Made PK's chat formatting disabled by default when a common chat plugin is detected
Fixes
- Added Experimental annotation. Marks APIs that are still WIP and might not work correctly, or may be changed in future.
- TempBlocks can now be stacked. This means that multiple TempBlocks can exist in the same block
- This means some abilities will need to be updated. Any ability that creates multiple TempBlocks in the same spot but only reverts one will probably need to be patched so ALL revert.
- This should stop any dupes and will allow for more configurable TempBlocks in future
- TempBlock#isBendableSource and TempBlock#setBendableSource(boolean). Experimental - will be implemented in 1.12.0. Defaults to false
- TempBlock#canSuffocate and TempBlock#setCanSuffocate(boolean) - Set whether this TempBlock suffocates players that are trapped in it. Defaults to true
- TempBlocks can now have an ability assigned to them
- Removed TempBlock.RevertTask class in place of Runnables
- FireDamageTimer can now be applied to lava TempBlocks. Will allow lava abilities to have proper death messages when dying to lava
- Experimental: Element#doesCountTowardsAvatar - Whether an element should count towards being an avatar or not.
- Experimental: WorldTimeEvent - An event fired when night and day changes
- Fixed snow melting into gray grass with PhaseChange
- Fixed Blaze duplicating blocks
- Fixed the bending board showing if the player lacks permission
- Fixed BendingBoard warning "java.lang.IllegalStateException: Unregistered scoreboard component"
- Fixed blue fire placing floating blue fire
- Fixed some abilities being able to place fire on water
- Fixed WaterArms Spear ice not reverting
- Fixed TremorSense making mining faster
- Fixed NPE caused from disabling Fire Combos
- Fixed language.yml typos
- Fixed being able to trigger EarthDome when bending is toggled off
- Fixed TimeUtil now showing less than 1s
- Fixed WorldGuard giving errors when PK disables
- Fixed relogging with a Multiability causing binds to clear
- Fixed plugins being loaded in the Abilities folder
- Fixed hitting mobs not triggering bending
- Fixed AvatarState not being accessible to OPs in 1.19+
Fixes
- Fixed blue fire causing errors with fire abilities
- Fixed the who command not showing chi passives
- Fixed IceWave not removing properly
Region Protection
Dev Changes
- Added support for FactionsUUID
- Updated RedProtect region protection
- Updated LWC region protection
- Updated Residence region protection
Fixes
- Moved sendBrandingMessage to ChatUtil
- Moved displayMovePreview to ChatUtil
- Updated pom for missing repositories
- Added the ability to link TempBlocks together. Reverting one will revert them all
- Fixed branding messages not supporting the simple hex color format
- Fixed WaterSpout deleting blocks
- Fixed IceBullet's combination being hardcoded
- Fixed Fire combos being able to move into region protected areas
- Fixed fire blocks from firebending not spreading when FireGriefing is true
- Fixed FireBlast not destroying plants when firegrief is on
- Fixed FireBlast not igniting blocks when it hits the side
- Fixed temp fire placing an incorrect blockstate
- Fixed EarthTunnel's blacklist not being read until
/pk reload
- Fixed custom elements not loading without a vanilla element being present in the bending user
Changes
Developer Changes
- Added hex color support for elements
- Added (hex) colors for each individual subelement
- Added a /b cooldown command to view/set/reset cooldowns for a player
- Added Lands region protection support
- Added Factions SaberFactions & Similar region protection support
- Updated Kingdoms region protection support
- Added better support for 1.16
- Made the config generate blocks based on the current server version (1.19 blocks will now appear in it when generating the config on 1.19)
- The [ProjectKorra] prefix in front of commands is completely configurable
- Commands can now affect offline players
- The combinations used to trigger combos is now configurable
- Reimplemented day/night factors
- Better EarthArmor colors
- Passives are now togglable with /b toggle <element>passives
- Removed autoannouncer
Fixes
- Added TempFallingBlock class
- Added PlayerSwingEvent for addon developers
- Added OfflineBendingPlayer class for offline player data
- Added RegionProtectionHook interface so 3rd parties can add bending region protection support
- Added CanBendHook interface so addon plugins can hook into the canBend method of BendingPlayer
- Added MultiSubElement class for subelements that have more than 1 parent element (e.g. mudbending for water and earth)
- Cleaned up GeneralMethods
- Made addons who don't define permissions have permissions defined for them instead
- Fixed pom.xml having outdated depends and repos
- Fixed presets halting main thread when being created (caused a lot of lag)
- Fixed presets halting main thread when being deleted
- Fixed preset tabbing not working for binding and deleting
- Fixed vanished players showing in command tabbing
- Fixed a range of 0 crashing the server
- Fixed addons registering their listeners twice on /b reload
- Fixed vanished players being visible in tab completion
- Fixes BendingBoard IllegalStateException thrown when team is unregistered twice
- Fixed "Proper Usage: xxx" in commands being untranslatable
- Fixed addon jars being unable to be deleted in windows while the server was on (PK now no longer have a hold on addon ability jars)
- Fixed cooldowns halting the main thread when saving (and causing a lot of lag)
- Fixed ALL cooldowns being saved to the database
- Fixed branding messages not supporting hex colors
- Fixed subs not reloading their colors from config on pk reload
- Fixed bending boards showing up in disabled worlds when you log in
- Fixed bending toggle reminder not being translatable
- Fixed untranslated line for failing to bind when you have a multiability bound
- Fixed temp snow blocks not preventing fall damage in HydroSink
- Fixed memory leak where BendingPlayer objects are never unloaded from memory
- Fixed toggled bending not persisting over relogs
- Fixed /b choose avatar not giving all 4 elements but instead giving the internal "Avatar" element that is useless
- Fixes addon abilities that do not define their own permissions being unusable until the permission is set by the server owner
- Fixed Night and Day factors not existing for 90% of abilities
- Fixed the blue fire factor not being used for a lot of abilities
- Fixed earth abilities not using the Metal power factor for damage when using a metal source
- Fixed combos being triggered from block placing
- Fixed the copy command able to copy while using a multi ability
- Fixed the bending board not showing for new players
- Fixed the display command showing the command to display passive and combos when there are no combos/passives for that element
- Fixed Chi not showing subelements of chi in the display command
- Fixed fire abilities that use FireTickTimer giving incorrect death messages
- Fixed NPE caused by FireTickTimer
Additions
Fixes
- Adds new 1.17 blocks to the various source block lists.
- Adds material tags (#tag) support in addition to the usual individual material names when configuring source blocks.
- Adds Nether Gold and Gilded Blackstone interactions to Extraction.
- Nether Gold will give 6, 12, or 18 gold nuggets depending on the double and triple chance of Extraction.
- Gilded Blackstone will give 5, 10, or 15 gold nuggets depending on the double and triple chance of Extraction.
- Adds new IgnoredBlocks config option to EarthTunnel.
- Dictates additional blocks EarthTunnel will ignore. Can not be used to remove hard-coded blocks earth tunnel will ignore.
- Contains all ores by default.
- Adds separate RevertCheckTime configuration option to control the revert time for EarthTunnel.
- Defaults to 300000. (The same as the default earth revert time)
- Adds BendingBoard#show() to make that BendingBoard visible and update it.
- Adds BendingBoard#hide() to make that bendingboard invisible.
- Adds BendingBoard#destroy() to unregister the Scoreboard it has. (BendingBoard object should not be used after destruction, and it's package visibility)
- Adds BendingBoard#isVisible() and BendingBoard#setVisible(boolean) for more general visibility conditions.
- Adds BendingBoardManager#isDisabled(Player) to check if a Player has the BendingBoard disabled.
- Adds element option for the BendingBoard prefix colors. Causes the selector to match the user's element color.
- Adds much-needed documentation to BendingBoardManager.
- Adds LightningCharge sound effect, with a method playLightningbendingChargingSound located in FireAbility, that gets called in Lightning when the move is charging.
- Allows config support following the similar structure of LightningSound.
- Adds LightningHit sound effect, with a method playLightningbendingHitSound located in FireAbility, that gets called in Lightning when the move hits an entity.
- Allows config support following the similar structure of LightningSound.
- Adds playLightningbendingSound() when the lightning is progressing.
Removals
- Fixes passives not showing up on /pk display.
- Fixes the /pk clear [#] command not utilizing/respecting the PlayerBindChangeEvent.
- Allows addon developers to properly cancel the effects of the /pk clear [#] command.
- Fixes the Bending Board so that it properly updates in the event the /pk clear [#] command is used.
- Fixes PhaseChange melting Ice into Water in the Nether.
- Ice blocks melted in the Nether will be turned into temporary Air if the AllowFlow config option is false and real Air if the config option is true.
- Fixes Ancient Debris not being considered ores by EarthTunnel.
- Fixes Flight not ending when switching elements or changing to spectator mode while the ability is running.
- Fixes FlightHandler not properly respecting gamemode changes that occur while abilities are running.
- If a player switched to spectator mode while an ability was running, it is very likely they would fall into the void and die.
- If a player switched to creative mode while an ability was running, they might not have been able to fly.
- This change has the potential to cause issues if abilities change a player's gamemode. Addon developers must resolve gamemode resets before reverting FlightHandler data.
- Fixes AvatarState's regeneration effect not being applied properly due to the duration being too short.
- Fixes bending boards toggling on any world switch.
- Fixes RapidPunch adding cooldown before it starts. With this fix, addon developers will be able to prevent the ability from getting activated without getting it on cooldown.
- Fixes board flickering.
- Fixes WaterArms showing up under ice abilities and as an ice ability in some displays.
- Fixes cooldown in Bloodbending not activating. The previous implementation would allow a user to constantly spam shift to Bloodbend without going on cooldown.
- Fixes FireManipulation stream cooldown not being applied.
- Fixes AbilityDamageEntityEvent being called unnecessarily.
- Fixes ignoreArmor param for DamageHandler#damageEntity.
Misc. Changes
- Removes BARRIER option from ParticleEffect, this was done so this build could support 1.16.X, 1.17.X, and 1.18.X.
- It was not a common particle so this breaking change was made to ensure backward compatibility. Moving forward, MARKER should be used.
- Removes the unneeded IgnoreOres config option from EarthTunnel in favor of the new option which offers more control.
- Removes BendingBoard#disableScoreboard(), hiding the scoreboard should not delete the bendingboard object.
- Changes ConfigManager to not rely on Material enum toString values to allow for better version support.
- Allows 1.17 blocks and material tags to be used in source list configurations.
- Changes prefix to have main and alternate color config options for the active and non-active slots respectively.
- Changes miscellaneous section to work more effectively.
- Cleans up some SQL statements to follow proper syntax casing conventions.
- Optimizes board code in general.
- Changes BendingBoardInstance to BendingBoard.
- Updates documentation for BendingBoardManager.
- Merges BendingBoardManager#toggleBoard(Player) and BendingBoardManager#forceToggleBoard(Player) into the same method with a force boolean parameter BendingBoardManager#toggleBoard(Player, boolean).
- Changes BendingBoardManager#canUseScoreboard to BendingBoardManager#getBoard : Optional<BendingBoard>.
- Adds Board.Extras section with defaults for server owners to add trackable miscellaneous names on the BendingBoard.
- Standardizes the PlayerBindChangeEvent so that it is called before the bind changes and is actually cancellable.
- Cleans up the MultiAbilityManager codewise.
- Changes ChatColor import in BendingBoard to the bungee import, allowing for hex colors in the board config options.
- Changes WaterArms sub-abilities (freeze, spear, whip) to be hidden (for the aforementioned WaterArms fix).
- Changes BendingBoard to update when elements are added.
- Changes the pom.xml to use HTTPS URLs since maven doesn't support HTTP URLs anymore.
- Cleans up DamageHandler#damageEntity code.
- Changes the noDamageTicks check in DamageHandler#damageEntity(...) to more closely follow Minecraft's logic.
Additions
Fixes
- Adds support for Minecraft 1.17!
- No new features have been added to take advantage of the new 1.17 content. This release is purely just a port of 1.9.1 that can support Minecraft 1.16.5 and 1.17.
- Adds vanished player support to the /pk who <Player> command.
- Should work with most common vanishing plugins, tested using Essentials vanish.
- Affects /pk who and /pk who <Player>.
- Adds new "Abilities.Earth.EarthSmash.Lift.Knockup" configuration option to control the velocity applied to players standing where an EarthSmash is created.
- Adds new "Abilities.Earth.EarthSmash.Lift.Range" configuration option to control the range in which entities need to be standing in relation to where an EarthSmash is created to get the Knockup applied.
- Fixes players sometimes "falling through" their EarthSmash if they try to create it underneath themselves.
- Reduces the overall push so it feels more natural.
- Expands the push radius so it can affect entities within one block of the location.
- Fixes IceWave activating sometimes when PhaseChange wasn't clicked.
- Fixes IceWave users getting stuck on their ice midair.
- Fixes the display command showing hidden combos and passives.
- Fixes an error caused by adding attribute modifiers to abilities sometimes.
- Fixes an error preventing the plugin from working on Minecraft 1.17.
- ClassDefNotFoundError resulting from EntityHuman being moved during the 1.17 Minecraft update. We no longer rely on NMS for this area as a proper API has been introduced. As such, GeneralMethods and EarthArmor have been updated to reflect these changes.
Additions
Fixes
- Adds a built-in bending board sidebar to visualize bound abilities and cooldowns.
- The board respects worlds where bending is disabled.
- Players can use the command `/pk board` to toggle the visibility of their board.
- Includes an API that community developers can use in BendingBoardManager.
- Adds the "Properties.BendingBoard" config option to enable or disable the board server.
- Adds language file configuration options to control BendingBoard visuals.
- "Board.Title"
- Controls the title at the top of the board.
- Supports the standard Minecraft color codes.
- "Board.SelectionPrefix"
- Controls the prefix shown corresponding to your current hot bar slot.
- Supports the standard Minecraft color codes.
- "Board.EmptySlot"
- Controls what is shown for empty slots.
- Supports the standard Minecraft color codes.
- `{slot_number}` can be used as a placeholder for the slot number.
- "Board.MiscSeparator"
- Controls the separation between hot bar binds and temporary cooldowns such as Combos.
- Supports the standard Minecraft color codes.
- Adds support for KingdomsX version 1.10.19.1
- Adds ability permission check to passive abilities. They should now respect their bending.ability.<ability name> permissions.
- Adds AbilityVelocityAffectEntityEvent
- A cancellable event that will fire whenever an ability would alter the velocity of an entity.
- Adds the Abilities.Earth.EarthSmash.Shoot.CollisionRadius configuration option
- Sets the collision radius of shot EarthSmash.
Misc Changes
- Fixes FireBlast going through liquids.
- Fixes duplication involving waterlogged containers.
- Fixes being able to not enter the name of a Preset when using the /pk preset create <name> command.
- Fixes getDayFactor() not being applied correctly and occasionally producing the wrong value.
- Fixes a rounding issue with some Fire ability damage configuration options.
- Fixes an error when attempting to start EarthGrab.
- Fixes PhaseChange error when melting snow.
- Fixes a memory/process leak in how cooldowns were removed.
- A player's cooldowns could only be removed when they were online. If a player's cooldown expired while they weren't online, their cooldown would attempt to revert every tick until the player rejoined. This has been resolved so cooldowns can revert while a player is offline.
- A side effect of this fix is that it is now possible for PlayerCooldownChangeEvents to fire while their corresponding Player is offline.
- Fixes an issue with MultiAbilityManager#hasMultiAbilityBound where it would return true if any MultiAbility is bound, not if the specified MultiAbility was bound.
- Updates Towny version to 0.96.2.0
- DensityShift sand blocks can now be used as a bendable source.
- Changes AvatarState so that its cooldown is applied when the ability ends instead of when it starts.
- Changes togglable abilities such as AvatarState, Illumination, and TremorSense to visually show when they are enabled in the BendingBoard and on BendingPreview in the same way as the ChiBlocking Stances.
- Updated the text of some ability descriptions and instructions.
- Adds new cache to PhaseChange to greatly improve the performance of water/ice updates.