Commit Graph

2110 Commits

Author SHA1 Message Date
Telesphoreo fe5e0fe53e Merge https://github.com/ProjectKorra/ProjectKorra 2021-09-29 17:12:22 -05:00
Christopher Martin 75c4f41be5
1.9.2 (#1153)
## Additions
* Adds support for Minecraft 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.
2021-06-15 09:49:50 -07:00
Christopher Martin 787b303c9f
1.9.1 (#1145)
## 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.
2021-06-07 16:58:29 -07:00
dniym 0b35fb9fda
Add AbilityVelocityAffectEntityEvent (#1094)
Created a cancellable event that will fire whenever a bending move would
alter the velocity of an entity.

## Additions
* Adds 1.
    > The AbilityVelocityAffectEntityEvent
    > Adds a new method to GeneralMethods -> setEntityVelocity()
    > Updates existing setVelocity() calls to use the new method in general methods.
    > checks to see if anything in the event should be modified or if it should be cancelled.

## Fixes
* Fixes 2
    > The lack of a way to detect when a bending move pushed a player.
2020-10-17 17:27:44 -07:00
Telesphoreo 3746028de0 Merge https://github.com/ProjectKorra/ProjectKorra into master 2020-10-03 23:42:50 -05:00
StrangeOne101 57869047a4
Fix unneeded getBendingPlayer call (#1095)
# Changes
- Changes `BendingPlayer.getBendingPlayer(Player player)` to redirect to `BendingPlayer.getBendingPlayer(OfflinePlayer player)` instead of `BendingPlayer.getBendingPlayer(String playerName)`
2020-09-25 12:16:38 -07:00
Telesphoreo db5e00a3ac move here 2020-08-30 14:40:31 -05:00
Telesphoreo 5bb4bbde59 Merge https://github.com/ProjectKorra/ProjectKorra into master 2020-08-30 14:40:14 -05:00
Vahagn Tovmasian 4b5a7f35f2
Update pom.xml project version to 1.9 (#1089)
## Misc. Changes
* Changes project version to 1.9 in pom.xml
2020-08-25 10:09:00 -07:00
Telesphoreo 8871edf068 Merge https://github.com/ProjectKorra/ProjectKorra into master 2020-08-21 21:40:23 -05:00
Vahagn Tovmasian f39c7f7186
Fine Tuning (#1075)
## Fixes
* Fixes #1079 - Netherite weapons not being counted as weapons
* Fixes #1034 - Abilities working through walls
* Fixes #1057 - Bad wording for toggle command.
* Fixes #1080 - IceSpike not working with a bottle source
* Fixes #1086 - Torrent not working with a bottle source
* Fix Illumination displacing water
2020-08-21 18:18:30 -07:00
Robbie Gorey 0367c92279
Add config option for Lightning on FireJet (#1083)
## Additions
* Added a configurable boolean for Lightning called "AllowOnFireJet" with a default of true, which allows the use of Lightning while on FireJet
    * Closes #1082
2020-08-21 18:16:49 -07:00
Telesphoreo db22d8ca86 Make players invincible by default 2020-08-18 01:42:22 -05:00
Robbie Gorey c4f60e4e69
Various config options (#1076)
## Additions
* Added a configurable AirSweep hit radius called "Radius" with a default of 1
* Added a configurable option to enable/disable WaterArms bound messages that are independent of the BendingPreview option, called "DisplayBoundMsg" under the WaterArms config, with a default of false
* Added a configurable option to allow/prohibit FastSwim while WaterArms is in use, called "AllowWaterArms" under the FastSwim config, with a default of false
2020-08-06 23:24:45 -07:00
Vahagn Tovmasian 2d27c3cbbe
Fix Outstanding Bugs (#1073)
## Fixes
* Fixes AirBlast, FireBlast, and AirSwipe going through walls
* Fixes FireBurst not doing damage.
* Fixes GeneralMethods#dropItems not checking for invalid drops.

## Misc. Changes
* Reduce collision radii for most abilities.
2020-07-28 14:21:36 -07:00
Christopher Martin f0dc7ce32b
Add getMovePreviewWithoutCooldownTimer (#1074)
## Additions
* Adds `GeneralMethods::getMovePreviewWithoutCooldownTimer(Player)`
2020-07-21 23:25:19 -07:00
Moros 10ac727eda
Fix deprecated calls (#1072)
Update some deprecated calls
## Fixes
* Fixes the server loading the legacy `Material` API when a player used `TremorSense`
## Changes
* Added boundaries to `Levelled` block data in `GeneralMethods::getWaterData` and `GeneralMethods::getLavaData` to avoid future bugs
2020-07-21 14:57:07 -07:00
Vahagn Tovmasian f42f8bf2c3
Fix isFullMoon (#1071)
## Fixes
* Fixes isFullMoon being off by 1
2020-07-19 22:26:57 -07:00
Vahagn Tovmasian fa9f454978
Fix Illumination, Tremorsense, and who (#1070)
## Fixes
* Fixes Illumination torch duplication when breaking the block below the Illumination
* Fixes Tremorsense activating on slabs
* Fixes WhoCommand not displaying Blue Fire as a perk if the user has it
2020-07-19 21:28:17 -07:00
Christopher Martin 8d7f116c49
Include outstanding PR's and fix outstanding issues (#1069)
This PR moves over some outstanding PR's to the proper branch and resolves some extra issues. Thanks @xNuminousx!

## Additions
* 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`

## Fixes
* 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. Resolves #1068 

## Misc. Changes
* 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
* Bumps the Spigot API version to 1.16
2020-07-19 16:37:50 -07:00
Benford Whitaker 3c0424db51
Fix TempArmor Dupe (#1065)
## Additions
* Adds new methods to GeneralMethods involving armor Material checks.

## Fixes
* Fixes TempArmor duping glitches
2020-07-18 18:23:36 -07:00
Vahagn Tovmasian bd5c1fb45c
Synchronizes master with wip and fixes debug command (#1066)
## Fixes
* Fixes the `/pk debug` command causing `ClassNotFoundException` and `NoClassDefFoundError` due to missing hook dependencies in the compiled jar.

## Copy Pasted
Credit goes to the authors of all of the changes below. I simply copy-pasted them so that they can be directly committed to master rather than have to re-align the wip and master branches due to them not being synched.

* e4f2f4fc8f
* 3cc64a2246
* b153748741
* 964de778d9
2020-07-17 22:27:41 -07:00
Vahagn Tovmasian ca2bb791ea
Release Bug Fixes/Patches (#1064)
## Fixes
* 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.
2020-07-16 16:17:57 -07:00
Vahagn Tovmasian 3c1d6b7b85
Blue Fire Update & Firebending Refactor (#1062)
## Additions
* Adds Blue Fire SubElement.
    > *Adds related damage, cooldown, and range modifiers for configuration
* 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

## 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

## Removals
* Removes BlazeArc dependencies for Fire Abilities which ignite the ground.
* 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 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.
2020-07-11 22:05:45 -07:00
Christopher Martin c12e0daebb
1.8.9 (#1038)
For Spigot 1.14.4+

## 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
2019-12-09 23:03:28 -08:00
Christopher Martin 9ae9c07c7e
1.8.7 (#972)
## Additions
* 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 a getter 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`
* 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

## Fixes
* 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
* 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


## Misc. Changes
* 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

## Removals
* 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)`
2018-08-06 22:46:09 -07:00
Carbogen 08165edeb1 Fixed bug with MetalClips and misc errors. (#869)
## Errors and bugs corrected
* A `ClassCastException` in `PKListener.java:onEntityDamageEvent()` would occur when a non-Living Entity took damage.
* Ingots on the ground would disappear when their `ItemStack` merged with MetalClips', and the latter is removed upon colliding with an Entity.

## Improvements made
* A small vertical push was given to items affected by the *magnetize* functionality of MetalClips, so that they no longer get stuck when being pulled upwards.

## Other changes
* Added a `gitignore` entry to omit IntelliJ's out/ directory, which contains compiled code.
2017-12-19 16:08:31 -08:00
Christopher Martin 102112ffdd 1.8.6 (#825)
## Fixes
* Fixed Combos and possibly Passives appearing in `/pk b <Ability>` auto-tabbing.
* Fixed Combos not loading properly on certain servers.
* Fixed issue with `PreciousStones` by updating to the latest version to resolve API change issues.
* Fixed `RapidPunch` damage.
* Fixed incorrect summation of chiblocking chance.
* Fixed possible issue in PKListener#onPlayerInteraction()
* Fixed `Earth.LavaSound`.
* Fixed Chi attempting to chiblock targets with any move.
* Fixed hitting an entity with `TempArmor` not ignoring armor.
* Fixed `Immobilize` config path.

## Additions
* Added "Contributing" section to the `README` to help guide active community members.
* Added more detail to the `PULL_REQUEST_TEMPLATE` to allow for more uniform pull requests. 
* Added many new blocks to our ability block interaction.
* Added check to combo collisions to discard dead entities.
* Added functionality to allow chiblocking abilities to affect all entities.
* Added exception handling to the configurable `Sound` options to prevent `IllegalArgumentExcpetions`.
* Added sounds and `ActionBar` messages to being Bloodbent, Electrocuted, Immobilized, MetalClipped, and Paralyzed. (Abilities: `Bloodbending`, `Lightning`, `Immobilize`, `MetalClips`, and `Paralyze`)
* Added sound and `ActionBar` message for being Chiblocked.
* Added interval config option to `RapidPunch`. (time between each punch)

## API Changes
* Updated to `Spigot 1.12.1`.
    * Confirmed to be backward compatible with `Spigot 1.12` and `Spigot 1.11.2`.
* Renamed `ElementalAbility#getTransparentMaterial()` to `ElementalAbility#getTransparentMaterials()`.
* Converted most `byte`/`int` dependent `Material` logic to use `Material` instead. 
    * `ElementalAbility#getTransparentMaterialSet()` now returns a `HashSet<Material>` instead of a `HashSet<Byte>`.
    * `ElementalAbility#getTransparentMaterials()` and `GeneralMethods.NON_OPAQUE` now return `Material[]` instead of `Integer[]`.
    * `GeneralMethods#getTargetedLocation()` now takes a `varargs Material[]` instead of a `varargs Integer[]`.
* Removed `ElementalAbility.TRANSPARENT_MATERIAL`. It was outdated and became irrelevent after `GeneralMethods.NON_OPAQUE` was updated.
* Removed `Java 7` Travi-CI  JDK check.
* Updated `pom.xml` to build in `Java 8`.
* Added new `MovementHandler` utility class to control entity movement. (currently only capable of stopping movement.
2017-08-06 00:18:12 -07:00
Christopher Martin 0ab240cd93 1.8.5 (#813)
## Fixes

* Fixed odd interactions between `Bloodbending` and `AvatarState`.
  * You can no longer be bloodbent while in `AvatarState` and going into the `AvatarState` while being bloodbent will break you free.
* Fixed various errors in `Bloodbending`.
* Fixed `SubElements` being saved incorrectly in the database.
* Fixed a few cases where `Surge` would cause flooding.
* Fixed various NoCheatPlus exemptions in our `DamageHandler`. (Thanks, RoboMWM)
* Fixed ProjectKorra fire tick damage overriding other plugins fire tick damage.
* Fixed `FireSpin` working underwater.
* Fixed `EarthArmor` not properly obeying its cooldown.
* Fixed `Combo Abilities` being displayed in `/pk display <Element>`.
* Fixed `Extraction` cooldown being applied when the ability couldn't start.
* Fixed `EarthTunnel` cooldown being applied when the ability couldn't start.
* Fixed `IceSpike` field functionality not activating on `PhaseChange` blocks.
* Fixed `FireWheel` hit location if used while looking down.
* Fixed `Lightning` paralyze functionality.
* Fixed `DensityShift` causing fall damage if used on other `DensityShift` blocks.
* Fixed `Flight` cooldown being applied when the ability couldn't start.
* Fixed `Flight` deactivating if used while on the ground.
* Fixed `RapidPunch` cooldown being applied when the ability couldn't start.
* Fixed `WaterArms` not returning water sources to bottles.
* Fixed `WaterArms` not grabbing sources correctly.
* Fixed `CollisionManager` attempting to detect collisions between abilities in different worlds. (Thanks, plushmonkey)
* Fixed `CollisionManager` not resetting when a new manager is created.
* Fixed `JetBlaze` and `JetBlast` not overriding `FireJet` duration.
* Fixed `PhaseChange` not being able to melt snow blocks.
* Fixed `FastSwim` being able to be used on a `Catapult` slot.
* Fixed `FireManipulation` cooldown.
* Fixed `Collapse` and `RaiseEarth`not working in `AvatarState`.
* Fixed Waterbending causing concrete powder to harden.
* Fixed `MetalClips` magnetize not pulling iron ingots if players had them in their hand.
* Fixed `MetalClips` not disabling passives such as `FastSwim` on its targets.
* Fixed `MetalClips` armor absorbing damage.
* Fixed `MetalClips` magnetize not pulling if the launching portion of the move is on cooldown.
* Fixed `MetalClips` not dropping iron ingots once a held target is killed.
* Fixed `MetalClips` duplicating iron ingots by repeatedly hitting and pulling entities.
* Fixed `MetalClips` duplicating iron ingots by hitting blocks. 
* Fixed addon Passive abilities not registering.
* Fixed `/pk help <Element>` displaying incorrect/old links.
* Fixed `/pk help <Element/Combo>` being case sensitive.
* Fixed `/pk help` not allowing players to auto tab all non-hidden abilities.
* Fixed `IllegalArgumentException` being thrown if server owners put an incorrect `ChatColor` for the `Chat.Branding.Color` value in `language.yml`.
* Fixed `EarthArmor` allowing players to use `FastSwim` while the armor is activated.
* Fixed incorrect cancellation of `BlockBreakEvent` when players bending is toggled off.
* Fixed multiple instances of the same `CoreAbility` being present in auto tabbing due to certain move functionalities being split up between files.
* Fixed Passive abilities and Combo abilities showing up in `/pk bind <Ability>` auto tabbing.
* Fixed `WaterWave` and `WaterSpout` cohesive movement.
* Fixed `DamageHandler` applying `DamageModifier.ARMOR` where it is not applicable.
* Fixed `/pk check` command URL.
* Fixed Passive abilities breaking when choosing an element while bending is toggled.
* Fixed `WaterBubble` removing blocks placed by players while the ability is active.
* Fixed potential infinite loop in `EarthGrab`.
* Fixed `AirScooter` not disabling when a player would sneak.

## Additions

* Added cooldown capability to `AirShield`, `AirSpout`, `Tornado`, `FastSwim`, `WaterBubble`, `EarthTunnel`, `AcrobaticStance`, and `WarriorStance`.
* Added the clickable ProjectKorra branding message to the `/pk help` and `/pk who` commands.
* Added `radius` config option to `EarthGrab`.
* Added AvatarState configuration options for `IceSpike`, `IceBlast`, `Torrent`, `OctopusForm`, `WallOfFire`, `WaterSpout`, and all stock Combos.
* Added aesthetic donation perk servers can give to their players in the `/pk who <Player>` command via the `bending.donor` permission.
* Added config option for the lightning bending sound and lava bending sound.
* Added `Pitch` and `Volume` config options for all configurable sounds.
* Added identifiers on Addon Abilities in `/pk help <Ability>` and `/pk display`.

## General Changes

* Reduced default config values of `AvatarState` ability modifiers.
* Changed the way abilities display in `/pk help <Ability>`
     * Abilities now display whether they are Addons or not.
     * Abilities now display whether they are Combos or Passives.
     * Addon Abilities display their author and version.
* Improved `AirScooter` behavior. It isn't perfect yet, but it is better.
* Changed `EarthArmor` so it now breaks when a player teleports.
* Changed cobblestone and obsidian created by `AirBlast` to `TempBlocks`.
* Changed `/pk add Avatar` to add all four main elements.

## API Changes

* Added `RevertTask` which runs whenever `TempBlock#revertBlock()` is called.
* Moved `BendingPlayer` creation to a separate thread.
* Changed initial `BendingPlayer` database storage to insert default values.
* Improved `CollisionManager` performance by removing unnecessary detections.
* Put logic in place to remove ability instances causing exceptions without breaking all other running abilities. (Thanks, PhanaticD)
* Changed `PassiveManager` storage so Passive abilities are be stored by name/class instead of by `Element`.
* Removed `PassiveManager#getPassivesByElement()`.
* Added `CoreAbility#unloadAbility(Class clazz)` to unload an ability from a server.
* Added `CoreAbility#getAddonPlugins()` to get the names and paths of all currently loaded addon plugins. Returned format: `<plugin name>::<abilities path>`
* Changed `/pk reload` to add support for addon plugin reloading.

## Removals

* Removed the Minecraft version from the `/pk version` command.
* Removed `SandSpout`.
* Removed `SandRun` remnant from `EarthPassive`.
* Removed `AirBlast` collisions with other basic moves.
2017-08-03 21:54:22 -07:00
Christopher Martin 3bec7541d3 1.8.4 pom version fix. 2017-06-13 19:05:19 -07:00
Christopher Martin 0b1bd99bbf 1.8.4 (#769)
* Fix OctopusForm (#734)

* Reload changes

* Catapult Fixes

* Catapult Adjustment

* Changes

* OctopusForm fix

* Attribute System + FireBlast example (#735)

* Attribute System + FireBlast example

* Removed PK jar 😃 💃

* Fixes Chi Descriptions/Instructions, Removes Fire Passive (#737)

* Fixes missing Chi ability descriptions and instructions

https://trello.com/c/3vto7SEn/734-re-add-paralyze-and-rapidpunch-descrip
tions-and-instructions

* Removes FirePassive

Was discussed in CD chat
https://trello.com/c/skKfHiwR/733-convert-firebending-passive-to-the-new
-passive-system

* Change Octoform freezing (#741)

* Reload changes

* Catapult Fixes

* Catapult Adjustment

* Changes

* OctopusForm fix

* Change Octoform Freezing

* Revert "Change Octoform Freezing"

This reverts commit d5745fe3171b0e24682631889322d81f153d73bd.

* Revert "Revert "Change Octoform Freezing""

This reverts commit 9a91730e0fec7c428f619ffca14e4ea467298b37.

* Changed attributes to use plain reflection rather than annotations (#743)

* should fix some issues with octopusform (#742)

when this .remove() is called nothing has happened with this instance, so the old tempblocks/phasechange never actually get removed, and we get nullpointers trying to remove the ones for this instance since they were never even created

* Fixed external elements, subelements and abilities not loading (#745)

Due to plugins that depend on ProjectKorra loading in AFTER pk, when a
BendingPlayer object is created, all the external elements, subelements
or abilities they may have are lost because they are caught in the null
checks.
To work around this, we will continuously loop every second for 30
seconds until the request times out. If any elements/abilities the user
has haven't loaded in, in that time (the side plugin has taken longer
than 30 seconds to load), then it will time out and report it in the
console.

* New Attribute System (#746)

• New Attribute System (WIP)
• Fields should now be marked with @Attribute(Attribute.DAMAGE) or
whatever the relevant attribute is.
• If the Attribute you want is not there, you can provide a string
instead
• At runtime, these Attributes can be changed with
Attributes.modify(ability/element, attribute, modifier)
• Air and Chi have all been marked with @Attribute annotations
• Updated Particlelib - Fixed bug with dragonbreath and endRod particles
being wrong. AND added new 1.11 particles.

* Adding blocks to the world async is not allowed (#744)

* Wip (#748)

* Fixed *abilitis* typo in Shockwave description

* fixed: WaterSpout not working on PACKED_ICE - cause was looking for nonexistent config boolean, instead of at Properties.Water.IceBlocks list

* Plant block removal and /b add all feature (#749)

* Fixed *abilitis* typo in Shockwave description

* fixed: WaterSpout not working on PACKED_ICE - cause was looking for nonexistent config boolean, instead of at Properties.Water.IceBlocks list

* Fixed: Surge and WaterArms not removing plant block

* New Feature: /bend add all [player]

* fixed passives not enabling on /bend toggle all (#751)

* fixed passives not enabling on /bend toggle all

* Correct/Update comment to act as a TODO note.

* Fix spectator target (#753)

* Don't target spectators

* Remove debug code

- Remove stick debug code that was causing a NullPointerException.

* Change block set order when moving earth (#754)

- Set the source block to air after setting the target block to the new
  type. This will eliminate temporary holes, which minimizes major lighting
  updates.

* Fix exceptions (#752)

* Fix world check when sending particles

- Check by World reference rather than string name comparison. The following
  Location distanceSquared call will throw an exception if the World names
  are the same but references aren't.

* Fix several exceptions

- Destroy LavaFlow instance when the Player leaves the World.
- Destroy Torrent instance when the Player leaves the World.
- Fix cooldown exception when Player is null.

* PhaseChange Speed option added (#756)

• Delay option changed to speed
• Fixed EarthArmor breaking when a player is paralyzed.

* FireManip, WaterBubble & 1.12 (#757)

• Added basic FireManipulation. Still needs lots of improving, but
that's for another commit.
• Redone WaterBubble. Now has a click version and an expand/shrink
animation.
• Removed AirBubble
• Updated Spigot to 1.12
• Fixed Octopus NPE
• Fixed EarthArmor remaining after TPs to other worlds

* EarthTunnel - DropLootIfNotRevert (#759)

* .gitignore - Added ignores for IntelliJ

* EarthTunnel: DropLootIfNotRevert - config & functionality

* .gitignore - Added ignores for IntelliJ

* EarthTunnel: DropLootIfNotRevert - config & functionality

* Bug Fixes (Catapult, Illumination, Config) (#760)

* Bug Fixes (Catapult, Illumination, Config)

* Finish Fixing Illumination

* Fix Catapult angle

* Fix Catapult bug

* Angle cancel option Catapult

* Fix Illumination on leaves, Fix water flooding

* Config stuff for Toby

* Fix LavaFlow (#755)

Fixed "AllowNaturalFlow"

* Updated to 1.12 with for days (#761)

• Redone the (core) ability load system - The old one broke with the
Guava update in 1.12
• Fixed some WaterBubble floods
• Fixed PhaseChange melting snow super duper fast
• Fixed some other misc bugs
• Added 1.12 Spigot to classpath

* 1.12 Bug Fixes (#762)

* Bug Fixes (Catapult, Illumination, Config)

* Finish Fixing Illumination

* Fix Catapult angle

* Fix Catapult bug

* Angle cancel option Catapult

* Fix Illumination on leaves, Fix water flooding

* Config stuff for Toby

* 1.12 fixes

* More 1.12 fixes (#763)

* Bug Fixes (Catapult, Illumination, Config)

* Finish Fixing Illumination

* Fix Catapult angle

* Fix Catapult bug

* Angle cancel option Catapult

* Fix Illumination on leaves, Fix water flooding

* Config stuff for Toby

* 1.12 fixes

* More 1.12 Fixes

* Collision fixes, Air sound change,

* Tried Fixing Collisions

Currently the loops in
CollisionInitializer#initializeDefaultCollisions() don't work

* 1.8.4 Fixes (#764)

* Small 1.8.4 fixes

• Fixed selecting snow blocks as a water source not working when they
are more than 3 blocks away
• Fixed DensityShift turning lava into sand when you land softly
• Fixed IceBlast not working on TempBlocks

* Added FireManip particle options to config

Also removed a sneaky debug message

* 1.8.4 Fixes (#765)

* Redone Fire Combos (#766)

* Finalize Fire Combo split (#767)

* 1.8.4 Fixes

* Correct Fire Combos

* Remove unused imports
2017-06-13 00:54:30 -07:00
Christopher Martin e03723ad31 1.8.3 (#733)
* 1.8.3 / Repo Cleanup

* Readme start
2017-02-16 22:35:24 -08:00
Simplicitee ca6ca2b08a Catapult Fix (#732)
* Reload changes

* Catapult Fixes

* Catapult Adjustment

* Changes
2017-02-16 22:13:38 -08:00
Simplicitee f2889b7fd4 Reload changes (#731) 2017-02-16 19:10:03 -08:00
Alexander Meech 2cb73c71ec Alex's Awesome Update (#729)
* Fix chi abilities appearing to strike twice, implement catapult 2.0, and fix water sources being removed by breaking them

* Small changes for loony (visual and time)

* Completely rewrite catapult functions and repair water abilities allowing plant sources to be broken upon selection

* Increase length of moveEarth call in Catapult and add more configuration options

* Fix my dumb mistake of using a bitwise operator

* Allow tempblock usage for iceblast
2017-02-16 18:10:08 -08:00
Sobki 2fa49c945c Fixed memory issues with LavaFlow (#730) 2017-02-12 13:27:03 -08:00
Sobki da2b04a01c Fixed issue with text formatting being removed on new lines (#728) 2017-02-11 13:06:32 -08:00
Sobki 34be68bb40 Fixed memory issues with PhaseChange and Torrent. (#727)
Thanks to PhanaticD for reporting these issues.
2017-02-10 23:26:33 -08:00
Sobki 29a6cb8d05 New branding stuff (#726) 2017-02-10 21:02:40 -08:00
Simplicitee b2fcfc493a Remove Attribute system (#725)
* AirJump, Attribute continuation

* Remove AirJump

* Revert "Remove AirJump"

This reverts commit e6cf056bb746d70643931f523f163aea1738b482.

* Revert "AirJump, Attribute continuation"

This reverts commit b8198d7eaff34b089fb0ec1003e4b766503cb0ae.

* Remove Attribute to redesign
2017-02-10 19:53:47 -08:00
StrangeOne101 477d02c673 Few fixes here, here and maybe there (#724)
• Fixed CoreAbility.getAbilities() not returning addon abilities
• Fixed errors spammed from /b w when the server can't fetch the staff
list
• Fixed /b d passives - now displays all possible passives
• Fixed /b t <sub> causing an internal error
• Fixed a lot of NPEs
2017-02-06 15:09:02 -08:00
Sobki e8df4895b9 Changes to branding (#721)
* Changes to branding

* Fixed java 8 crap

* whoops missed some cause im an idiot
2017-02-04 20:57:52 -08:00
Simplicitee 697db0236d Attributes, AirScooter fixes, Config fixes (#720)
* Attributes, AirScooter fixes, Config fixes

* AirScooter fixes

* AirScooter fixes part two
2017-02-03 19:21:20 -08:00
Sobki 3539389e1a Fixed TEMP_LAVA_BLOCKS not removing key from Map (#714) 2017-01-30 09:56:35 -08:00
Sobki f10abf5020 Fixed memory leak with IceSpike (#713) 2017-01-29 23:18:20 -08:00
Sobki 4743fdc829 EarthGrab fixes (#712) 2017-01-27 15:03:13 -08:00
Sobki 047224a4cb Fixed passives being enabled/disabled at wrong times (#711) 2017-01-25 18:47:20 -08:00
Sobki 2de9ce3281 Fixed bending breaking when a user toggles their bending (#710) 2017-01-25 18:14:12 -08:00
Loony 3b597cc933 Fixes EarthGrab errors which causes bending to break (#706) 2017-01-25 17:32:26 -08:00
Sobki c068463232 Added null checks to hasPassive(...) (#709) 2017-01-25 17:10:31 -08:00