Add support for Minecraft 1.14.0. Note that this build supports THE VERY LATEST VERSION OF BUKKIT as of April 30th, 2019. If you have not built a version since that date, please re-build using BuildTools, else AlchemicalArrows will not function as intended.
Drop support for Minecraft 1.13.x (despite the selected version on BukkitDev)
The /givearrow command now supports entity selectors (i.e. @p, @a, @r, @s and its selector arguments... @a[gamemode=creative]), though only players are targeted for obvious reasons
Added a /summonarrow command to summon arrows from (optional) specified coordinates at a (optionally) specified velocity
This command is /execute friendly
Syntax is as follows: /summonarrow <arrow> [x] [y] [z] [world] [velocityX] [velocityY] [velocityZ]
Massive codebase refactor to cutdown on duplicated code, inefficient code, unnecessary code and whitespace inconsistencies
Update tasks for the cauldron and arrow state handling are now called at 1/10th the speed they were previously which may improve performance for some lower-end servers without jeopardizing functionality
Picking up alchemical arrows is now less hacky. Before 1.9 this was required, but it has since been changed and I've neglected to update it. It should now be less finicky and more accurate with regards to how arrows are added to the inventory on pickup
Due to changes in 1.14, alchemical arrow items now support colouring in the inventory and world. While AlchemicalArrows does not take advantage of this, developers may. AlchemicalArrows will take advantage of this in the near future.
Fix edge-case IndexOutOfBoundsException by assuming a crafting window is open while crafting arrows
Fixed the wrong message being sent when /givearrows provided an invalid arrow ID
Updated all dependencies:
Removed WorldEdit Core & WorldEdit-Bukkit as they were redundant
WorldGuard-Legacy 6.2 -> 7.0.0-SNAPSHOT
bStats 1.2 -> 1.4
API Changes:
Added nullability annotations to all methods and arguments
The ArrowRegistry has had an entire overhaul, but still maintains support for legacy registration and arrow handling
All former static methods to register arrows are now instance methods... #register(), #unregister(), #get(), etc.
All former member methods to handle the state of an in-world arrow have been moved to a new class, ArrowStateManager, obtainable with VeinMiner#getArrowStateManager(). This is to ensure a single-responsibility principle
All internal AlchemicalArrow implementations hold configured values as constant properties which may be modified programmatically