It has been exactly a year since our last release so as you can expect, we have a lot and have a lot to go over! Big shoutout to the entire ProjectKorra team for making this a possibility and an even bigger shoutout to you, the community, for sticking with us for so long! We are, from this point forward, planning on releasing much smaller monthly builds so we can get you more content quickly and hopefully revitalize the community. Lets jump right in to some of the biggest changes:
Due to many bugs and inconsistencies with our old flight utility class, we have re-coded it from the ground up, now named FlightHandler.java, this class is responsible for tracking multiple instances of abilities per player which require flight. This refactor has resulted in an incredibly significant improvement of glitches granting player’s unintentional access to fly mode.
COOLDOWN DATABASE FUNCTIONALITY
In 1.8.7 we made the decision to add a configurable cooldown to /b choose. This will allow server owners to set a delay between players changing elements. This feature can be found in the config under Properties.ChooseCooldown. Additionally, we also added the bending.choose.ignorecooldown permission which allows players to bypass this cooldown.
In order to make this feature a possibility, we allowed the storage of cooldowns inside the ProjectKorra database. This prevents them from resetting when a player disconnects or the server restarts. Currently, this feature is only being used by /b choose and AvatarState but addon developers can utilize this new system as well.
// Gives the BendingPlayer a 5000ms cooldown that is stored in the database. bPlayer.addCooldown("Cooldown", 5000, true);
We are actively working on building a system so server owners can have granular control over ability collisions but it is not ready for this release. In the meantime, we have added the ability for addon developers to add their own collisions and override the defaults. This allows them to create their own collision packs as side plugins!
CoreAbility airShield = CoreAbility.getAbility(AirShield.class); CoreAbility fireBlast = CoreAbility.getAbility(FireBlast.class); // Overrides the default collision between AirShield and FireBlast so that they do not collide anymore. ProjectKorra.getCollisionManager().addCollision(new Collision(airShield, fireBlast , false, false));
To add more of a sense of achievement to ProjectKorra, we have also started our own statistics system. Currently, the API is rather primitive but we have plans to continue expanding it so addon developers can hook their side plugins into it. As of this update, we can track player kills, player damage, total kills and total damage dealt. We know that because statistics is in its early versions, some of you may not want to have it enabled. Server owners can disable statistics by setting the Properties.Statistics config option to false. Statistics can be viewed in-game with the /b stats command, using the following syntax:
/b stats <get/leaderboard> <ability/element/all> <statistic> <player/page>
To see Sobki’s number of player kills using Fire Blast:
/b stats get FireBlast playerkills Sobki
To see the most player damage dealt with Firebending:
/b stats leaderboard Fire playerdamage <page>
To see OmniCypher’s total damage dealt to all entities, regardless of element or ability:
/b stats get all totaldamage OmniCypher
For 1.8.7, Flight was completely reworked into a new and improved multi-ability. Thanks to the elytra animation, it can be more immersive than ever. The sub-abilities are Soar, Glide, Levitate, and Ending. Soar is powered flight, allowing players to fly through the sky as Zaheer did. Additionally, flying past other entities at high velocities will cause damage. Glide is exactly like elytra gliding, just without the elytra. Levitate is a hovering mode, basically the creative gamemode flying. The ability ends if the player lands, takes damage, or exceeds the configurable duration. A fun feature that was added is that if you right-click a player, and then they right click you back, you will make them your passenger and they will fly around with you!
This old ability has been completely reworked to better fit its name and intended use. Now you can actually grab players with the ground and root them in their spot. To do this, left click to send your power through the earth to grab them upon contact! Doing this also makes them unable to bend! The trap that holds them can be broken in a multitude of ways such as by right-clicking the trap a configurable amount of times, external damage, and damaging the user. Additionally, sneaking without having an entity in your sights will pull all items on the ground towards you, along with pulling up arrows and crops from the ground.
Announcing the first core earthbending combo, EarthPillars. This combo uses RaiseEarth in an offensive manner by throwing all the entities around you into the air! The sequence for this combo is Shockwave (tap sneak) > Shockwave (hold sneak) > Catapult (release sneak). Alternatively, it can be activated by hitting the ground from a decent height while on your Catapult slot just like Shockwave can. This combo only works if both the user and the affected entity are on earthbendable blocks!
Have no fear, for the old EarthGrab has been repurposed into another earth combo. This was done so the name could fit better, and because the previous EarthGrab ability wasn’t fundamental enough to be its own slot-occupying ability. This is basically the same as the previous EarthGrab ability which was used to restrict movement of other entities or provide momentary defense for the user. The sequence for the combo depends on what the user wants to do. Both start by right-clicking a block with RaiseEarth. To project the EarthDome at a target you must then left click at them with Shockwave. To EarthDome yourself, right-click the block below you with Shockwave.
Wow, thanks for checking all of that out! We really appreciate your feedback so be sure to comment your favorite feature of the new build or something you would like to see in the future!