• Hello Guest! Did you know that ProjectKorra has an official Discord server? A lot of discussion about the official server, development process, and community discussion happens over there. Feel free to join now by clicking the link below.

    Join the Discord Server
ProjectKorra (Core)

ProjectKorra (Core) 1.10.2

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
  • 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
Fixes
  • 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
  • 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
Developer Changes
  • 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
Fixes
  • 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
  • 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.
Fixes
  • 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.
Removals
  • 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.
Misc. Changes
  • 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.
Likes: Elias
Additions
  • 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
  • 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
  • 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.
Fixes
  • 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.
Misc Changes
  • 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.
The Blue Fire Update
The long awaited update is finally here! Thank you to everyone who contributed to this update. There are a lot of new cool features for players & server owners to enjoy! This update is for Spigot versions 1.16.1 and above!

Additions
  • Adds Blue Fire SubElement. Given via the add command and the `bending.fire.bluefire` permission.
    • Changes the visual elements of fire abilities to use their soul fire equivalents. Also, it adds related damage, cooldown, and range modifiers for configuration if server owners want to buff ability attributes. Addon developers can not make blue fire exclusive moves too if they want!
  • Adds Sticks, Sponges, and Chorus Fruit to cookable HeatControl items.
  • Adds Smoker, BlastFurnace, and extinguished Campfires to blocks which FireBlast can light.
  • Adds new TempBlock constructor which takes in a long revertTime parameter
  • Adds new blocks to block lists in configuration
    • Adds new nether plants to plantBlocks list
    • Adds new earth blocks to earthBlocks list
  • Adds new methods to GeneralMethods involving armor Material checks.
  • Adds Surge interactions with Lava
    • Surge Wave and Surge Wall will both cause Lava to turn into TempBlock Cobblestone / Obsidian
    • Enabled via the new Abilities.Water.Surge.Wave.SolidifyLava.Enabled and Abilities.Water.Surge.Wall.SolidifyLava.Enabled config options. They both default to true
    • Duration of the created TempBlocks is set via the new Abilities.Water.Surge.Wave.SolidifyLava.Duration and Abilities.Water.Surge.Wall.SolidifyLava.Duration config options. They both default to 36000
  • Added boundaries to Levelled block data in GeneralMethods#getWaterData() and GeneralMethods#getLavaData() to avoid future bugs
Fixes
  • Fixes AvatarState buffs overriding day related buffs for firebending.
  • Fixes Blaze not going up hills, going through walls (mostly), jumping gaps.
  • Fixes Furnaces and related blocks not smelting after being activated by FireBlast
  • Patches AirBlast same origin & destination erroring.
  • Patches PhaseChange duplication glitch
  • Patches EarthGrab duplication glitch
  • Fixes invalid preset name throwing NPE
  • Fixes ChatPrefix not correctly displaying Avatar for those w/ multiple elements.
  • Fixes the /pk debug command causing ClassNotFoundException and NoClassDefFoundError due to missing hook dependencies in the compiled jar.
  • Fixes TempArmor duping glitches
  • Fixes DensityShift turning non-full blocks into Sand causing the player to get stuck in the ground. Now it will still prevent fall damage on non-full earthbendable blocks but will not turn them to Sand.
  • Fixes EarthDome and potentially other combos from not respecting their Enabled config option
  • Fixes players with usernames the same as ability names getting incorrect cooldowns applied.
  • Fixes the server loading the legacy Material API when a player used TremorSense
  • Fixes AirBlast, FireBlast, and AirSwipe going through walls
  • Fixes FireBurst not doing damage.
  • Fixes GeneralMethods#dropItems not checking for invalid drops.
Removals
  • Removes smoke particles from Fire bending to increase visibility and better emulate the show.
Misc. Changes
  • Changes API versioning to 1.16.1
  • Fire from Firebending no longer reverts all at once.
  • Changes Combustion animation to be more beam-like rather than a rehash of FireBlast.
  • Changes Add, Remove, Display command to properly display space for Blue Fire.
  • Changes ElementalAbility#isFire() to check for SOUL_FIRE_FLAME.
  • Changes FireAbility#isIgnitable() to check whether fire can be placed at that location rather than solely based on flammability.
  • Changes firebending abilities to use FireAbility#playFirebendingParticles() & FireAbility#createTempFire() where applicable.
  • Changes FireAbility#playFirebendingParticles() to play blue fire particles when player has the BlueFire subelement.
  • Changes Water abilities that require sources to deactivate if their source is destroyed after selection occurs but before the ability starts
  • Changes AirSuction origin selection to remove if the player gets too far away
  • Changes AirSwipe streams to be independent of one another (i.e. one hitting a wall won't cause them all to stop)
  • Reduces the default collision radius of AirSwipe and prevents entities from getting hit through corners
  • Reduce collision radii for most abilities.
For Spigot 1.14.4 to 1.15.2
  • General Gameplay
    • Additions
      • Added default Suffocate cooldown: 6.5 seconds
      • Added kinetic damage tracker to AirSweep
      • Added self and others push strength options for AirSuction
      • Added config option for multiple blocks to be changed per EarthTunnel run, allowing for much faster earth tunnels
      • Added config to ignore ores completely for EarthTunnel (good for mining)
      • Added AllowSnow config option for IceBlast
      • Added AvatarStateCooldown config options for IceBlast and IceBullet
      • Added config option for ice trapping abilities to not place blocks in players head or feet
    • Fixes
      • Fixed preset command not allowing page numbers higher than 1
      • Fixed Catapult and MetalClips not respecting /b invincible
      • Fixed Charged FireBlast radius and cooldown
      • Fixed Suffocate being usable through walls
      • Fixed FireBlast ignoring particle radius options
      • Fixed FireBurst fragmenting (not looking like a single burst)
      • Fixed AirSweep knockback to be more consistent (lessened friction)
      • Fixed AirBlast knockback using wrong push options
      • Fixed EarthSmash using nonexistent AvatarState options
      • Fixed error when switching worlds with PhaseChange active
      • Fixed server crash when hitting falling blocks with high-velocity abilities
      • Fixed server crash when using EarthGrab over the void
      • Fixed EarthTunnel not using configurable revert time
      • Fixed EarthPillars persisting when no entities were around
    • Changes
      • Improved pathing for EarthBlast; works more consistently and can be used from ceilings
      • Improved aiming for EarthBlast and IceBlast
      • Changed AirSwipe and AirSweep to originate from the player’s main hand
      • Changed AirBlast knockback calculations; made the push options affect knockback more directly
      • Changed EarthTunnel to use tempblocks properly
      • Moved core combo instructions to config
    • Removals
      • Removed being able to use Lightning while using FireJet
      • Removed jukeboxes being tempblocks
      • Removed bending.command.import permission from plugin.yml

  • API
    • Additions
      • Added GeneralMethods#getMainHandLocation(Player)
      • Added GeneralMethods#getClosestEntity(Location, double)
      • Added GeneralMethods#getClosestLivingEntity(Location, double)
      • Added "large" abilities collision with each other
      • Added specific timings for hot spots in the code that should help server owners diagnose lag from PK
        • player move event
        • physics event
        • bending manager
      • Created local folder repo and update pom for local jar files, this is necessary to use the maven shade plugin.
      • Added check for concrete powder in move earth
      • Added PlaceholderAPI support (hopefully more to come)
        • %projectkorra_slot<1-9>% ability on slot <1-9>
        • %projectkorra_element% element of the player
        • %projectkorra_elementcolor% color of the player’s element
        • %projectkorra_elements% elements the player has
      • Added "bending" WorldGuard flag.
        • Used for allowing or denying bending in worldguard regions. Will fall back to the old method of the build flag if the custom flag fails to register or isn't set
    • Fixes
      • Fixed calls to CoreAbility#isEnabled() causing NullPointerExceptions when a CoreAbility is not enabled
    • Changes
      • Changed CoreAbility#getAbility(..) Javadocs to state when it returns null
      • Formatted codebase
      • Changed GeneralMethods#getEntitiesAroundPoint() use spigot method for entities around point, should be more optimized
      • Optimizations to water and air spout to not continually set flying
      • Optimized revertchecker to not use block.getChunk; this will load the chunk on the server and instead use hashmap of coords
      • Optimized revertchecker to use paperlib to allow servers running paperspigot to load the chunk for a revert block async
      • Optimized tempblock revert to load chunk async before updating stateOptimize move event to ignore head movements without directional movement
      • Optimized physics event to check for air prior to checking for tempblocks
      • Optimized tempblock set/revert to not apply physics for blocks that don't emit light
      • Optimize isWater to check for actual water blocks first
      • Optimize PhaseChange list check, hot spot due to being called in physics event
    • Removals
      • Removed BindChangeEvent; never called or used
      • Removed HorizontalVelocityTracker that has lasted over 30 seconds, also don't create a tracker for non-living entities
General Notes (IMPORTANT!)
  • Due to the Spigot 1.13 update, internal names of block and item types have changed. Consequently, server owners should regenerate their configuration files to avoid errors. The main issue is the earth bendable blocks list in the config, several of the materials on the list had name changes and one is now a whole other type itself.
  • Failure to change config values (or delete the file so they can generate new defaults) will cause noticeable gameplay problems. It is the owner’s responsibility (or whoever is responsible) to take the necessary actions to avoid such problems.
  • If any errors present themselves when switching from PK on 1.12 to PK on 1.13, the first course of action needs to be to reset the config.
1.13 specific development changes

  • Changed the ParticleEffect API to make use Spigot’s Particle API. ParticleEffect values that had the same Particle value had any duplicates deprecated for future removal, leaving names that matched their Particle values. If you are an addon developer and use particles it will need to be updated.
  • A bug was fixed with database cooldowns, server owners will need to delete the pk_cooldowns table to properly apply this fix
  • Many Material types changed, updated references and config defaults to be accurate. Changed all uses of MaterialData to BlockData (which replaces the former in Spigot)
  • Added a new method, ElementalAbility#isWater(BlockData), checks for Waterlogged blocks primarily. Seagrass and Kelp block types are also added because they inherently have water and cannot exist without it, and also are not Waterlogged
  • Added a boolean parameter to GeneralMethods#isAdjacentToThreeOrMoreSources(Block), passing in true will check for lava source blocks, passing in false will check for water source blocks.
  • The method GeneralMethods#isAdjacentToThreeOrMoreSources(Block) still exists, and checks for water.
  • Maven setup was changed to properly use repositories with applicable dependencies. It is also possible to specify the jar output location with -Ddir=<directory>
  • With the addition of two new types of air blocks, a new methods for checking if a block is any air type was added, ElementalAbility#isAir(Block)
  • If a move throws an error while progressing, the user of the move will be notified and the full object for the move and player will be printed in console for easier debugging
Gameplay Changes

  • Using ice created by the Torrent ability as the source for Torrent, Surge, and WaterWave will now cause all the ice created by the same Torrent instance as the selected block to also revert when used. This is a test of this feature which can later be applied to other large-scale abilities that create ice blocks.
  • MetalClips now allows the user to throw the controlled entity at any clip amount, and will no longer reset when switching targets
  • Added configurable sitting animation for AirScooter, false by default
  • Added configurable gliding animation for FireJet, false by default
  • Added configurable dynamic cooldown for AirShield, any unused duration is removed from the cooldown, false by default
  • Improved EarthBlast and IceSpike targeting, won’t run into itself
  • WorldGuard dependency was updated, version 7.x required. ProtectionStones support removed until 1.13 update for that plugin. Support for the Factions plugin made by MassiveCraft was dropped as it is unclear if they will be updating to 1.13 and beyond. Support for FactionsFramework was added as a replacement. Added region protection checks for the PlotSquared and RedProtect plugins
  • Added core combo instructions to config
  • Lavaflow will now interact better with raised earth and shockwave, no longer leaving messes
  • A large number of moves have been updated to properly check for protection or if bending invincibility is toggled
  • Avatar title in chat will now require Earth, Air, Fire, and Water added, or the permission bending.avatar given
Hello everyone, I am happy to announce the release of ProjectKorra version 1.8.7!

It needs to be noted that this version of ProjectKorra is NOT made for Minecraft version 1.13 and most likely will not work on it.

That being said, this build has been exactly one year in the making. A lot of work has gone in to make it as stable as possible so big shoutout to the entire team! Let's look at some of the exciting new additions and fixes:

* Added Statistics API
* Added cooldown database
* Added database cooldown to AvatarState
* Added code to try a reconnect if the database connection is lost
* Added a check to ensure an entity is an instance of LivingEntity before casting in PKListener
* Added FireManipulation and Combo permissions to plugin.yml
* Added an isBender method to BendingPlayer
* Added an accessor for the Player object stored in BendingPlayer
* Added OFFHAND_TRIGGER to ClickType
* Added ElementalAbility#getEarthbendableBlocks(), returns String list from config
* Added GeneralMethods#getBlockFaceFromValue(int xyz, double value)
* Added GeneralMethods#checkDiagonalWall(Location location, Vector direction), to determine if there is a diagonal wall
* Added required variable to ComboAbilityInfo, Set of CoreAbility a Player must have active to use corresponding ComboAbility
* Added PassiveAbility#isProgressable(), checks for if the ability uses its progress() method
* Added overriding capabilities to CollisionManager
* Added TempArmorStand utility class
* Added new EarthGrab
* Added new Earth combo, EarthPillars.
* Added new Flight MultiAbility
* Added a "Sticky" feature to TremorSense that keeps the move running on the last earth block you were standing on
* Added “/b stats” command to display player statistics
* Added TimeUtil to convert millisecond times into human readable increments
* Added Dynamic Sourcing config option for Earth and Water
* Added enable/disable option to FireManipulation
* Added configurable duration values to AirShield, AirSpout, and Tornado, WaterSpout, HealingWaters`, and OctopusForm
* Added IceBlast and IceSpike blast to collisions
* Added mechanics to AirSuction to close doors
* Added configurable cooldown to “/b choose” located at “Properties.ChooseCooldown
* Added IRON_TRAPDOOR to FerroControl functionality
* Added new config option that can prevent the Updater from connecting to the website when disabled in the config
* Added more options to AirSwipe in AvatarState config portion

* Fixed “Abilities.Chi.Smokescreen.Instructions” spelling error in ConfigManager.java
* Fixed “Abilities.Water.Passive.HydroSink.Description” spelling error in ConfigManager.java
* Fixed “Commands.PermaRemove.Description” spelling error in ConfigManager.java
* Fixed “Extras.Fire.DayMessage” spelling error in ConfigManager.java
* Fixed QuickStrike causing an endless chain of itself that never stops chiblocking and does no damage
* Fixed Paralyze going indefinitely when it has a cooldown of 0
* Fixed damaging chi abilities not working in WarriorStance
* Fixed WarriorStance NPE
* Fixed AcrobatStance NPE when a user attempts to log out while the move is active
* Fixed paralyzing abilities canceling the sneak event if the player was sneaking
* Fixed Passives not being removed when a player has their bending changed
* Fixed Passives being activated in Spectator mode
* Fixed DensityShift softening your landing while you are an Airbender
* Fixed the passives that weren't working. This includes FerroControl, FastSwim, AirAgility and ChiAgility
* Fixed MultiAbility instances not being removed when a player has their bending changed
* Fixed player binds not being filtered properly if they are using a MultiAbility
* Fixed FireWheel going over air
* Fixed AvatarState sound causing the ability to not work
* Fixed bottlebending for Surge, WaterManipulation, and OctopusForm
* Fixed Bloodbending ConcurrentModificationException when attempting to bend non-living entities
* Fixed PhaseChange not working on blocks placed over already melted blocks
* Fixed IceBlast going on cooldown after sneaking after selecting a block
* Fixed Surge making TempBlocks revert
* Fixed WaterArms grapple ability not working
* Fixed WaterArms making TempBlocks revert
* Fixed WaterArmsSpear checking if a block is placeable after placing the block
* Fixed aiming bugs with WaterArmsSpear
* Fixed LavaFlow causing drop duplications when cooled by another move
* Fixed EarthArmor making people invincible
* Fixed EarthTunnel so that it will work through tall grass and other transparent blocks
* Fixed EarthTunnel not checking if a block it was trying to remove was in a protected region
* Fixed EarthSmash values being incorrect
* Fixed being able to remove the EarthArmor armor items from their slots
* Fixed EarthTunnel not being able to be used on fallen blocks
* Fixed FireManipulation being able to go through blocks
* Fixed FireSpin and FireKick not expanding to full size when hitting an entity
* Fixed HeatControl solidify not working on Minecraft version 1.9
* Fixed Illumination dropping a torch if water is placed on the user's feet via bucket
* Fixed FireCombos not working with AvatarState
* Fixed FireWheel not going down inclines
* Fixed FireWheel insane wall climbing
* Fixed FireShield duration
* Fixed FireWheel not always damaging due to an invalid entity selection range
* Fixed logic in GeneralMethods#displayColoredParticle() which caused random blips of other colors
* FIxed ClassCastException in PKListener.java caused by MetalClips
* Fixed typo in GeneralMethods which confused NETHER_WART_BLOCK with NETHER_STALK
* Fixed permission based limit on how many Presets players can create. "bending.command.preset.create.#"
* Fixed NPE in WhoCommand when performing offline lookups
* Fixed various bad Map#contains() checks throughout the plugin
* Fixed BendingPlayer#addCooldown() adding cooldowns even if their time is set to an invalid number.
* Fixed the PlayerCooldownChangeEvent being fired on an invalid case such as a cooldown of 0
* Fixed entity targeting methods in GeneralMethods registering dead players waiting to respawn as valid targets
* Fixed NPE caused by checking for Lunar Eclipse, Solar Eclipse, Full Moon or Sozins Comet when not in the Overworld
* Fixed AirBlast, AirSweep, FireBlast going through diagonal walls
* Fixed known fly glitches
* Fixed ability redirection breaking bottlebending for that player until server restart

* Changed instructions in “/bending help <ability>” to `ChatColor.WHITE`
* Changed “/bending help earth” message to match others
* Improved check for exhaustion in move event
* Changed CoreAbility#getDescription() to pull combos from the lang config as well
* Renamed Hydrosink.java to HydroSink.java
* Reduced combo cleanup delay to one minute
* Improved IceSpike blast animation
* Improved code in ProjectKorra.java
* Improved FireShield animation
* Changed passive classes to be more functional than previously
* Changed BendingPlayer#canBendPassive() and BendingPlayer#canUsePassive() to have CoreAbility param instead of Element
* Changed PassiveAbility#isInstantiable() to be a check if the ability must be activated by the player, not if it uses the constructor
* Improved CoreAbility#progressAll()
* Improved AirAgility and ChiAgility
* Changed death messages that say “experienced kinetic damage” to “experienced a fatal collision
* Changed AirShield to permit AirSwipe and AirSweep to pass through it
* Changed FireShield to permit FireBlastCharged to pass through it
* Changed AirBlast, AirSuction, Blaze, and Combustion so they do not collide with any other abilities
* Changed AirSwipe and AirSweep so they can respectively pass through other instances of themselves.
* Removed all active abilities for a given player when they quit the server
* Changed old EarthGrab to EarthDome combo
* Changed AirSwipe to cool lava temporarily instead of permanently
* Changed “/pk” to return the “/pk help” pages
* Changed InvincibleCommand to use `i` as an alias. “/pk i
* Changed Preset bind command to use branding
* Changed Preset list command to use pages
* Changed bending preview to persist while on an ability slot
* Changed moves that cool lava (AirBlast, AirBurst, AirSwipe, HeatControl) so that they revert LavaFlow blocks
* Changed LavaFlow click to only produce particles on blocks it has affected
* Updated the Updater URL
* Updated “/pk help <element>” to support Avatar as an argument
* Updated “/pk help <element>” to prompt users to enter “/pk display <element>” instead of “/pk h <elementcombos>
* Changed FireWheel default range in AvatarState config portion
* Changed AirStream default hold duration in AvatarState config portion
* Changed WaterArms to not go through TempBlocks
* Changed HealingWaters previous duration value to "PotionDuration" in order to accurately represent what the setting changed
* Increased the default number of creatable presets to 5
* Disabled FireManipulation by default

* Removed ImportCommand
* Removed AirSwipes capability to break blocks
* Removed metal ores (Iron, Gold, and Quartz) from the Earthbendable's list
* Removed AirPassive.java and WaterPassive.java, combos are in their own respective files.
* Removed redundant checks in PKListener
* Removed redundant Earthbendable checks in Extraction
* Removed redundant checks in BendingPlayer
* Removed unnecessary code from GeneralMethods#getTargetedEntity()
* Removed unnecessary SuppressWarnings for deprecation in various classes
* Removed unnecessary SpiritPlayer checks in BendingPlayer#canBind(CoreAbility ability)
Top