AlchemicalArrows 3.1.1

Aims to improve the bow vs bow combat experience while staying true to Minecraft's vanilla mechanics

  1. Minecraft 1.14 Support

    • 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
    • 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]
      • The permission node, by default "false", is arrows.command.summonarrow
    • 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
        • AlchemicalArrowMagnet.PROPERTY_MAGNETISM_RADIUS : double
        • AlchemicalArrowLight.PROPERTY_STRIKE_LIGHTNING : boolean
        • AlchemicalArrowLife.PROPERTY_FLORAL_RADIUS : int
        • AlchemicalArrowGrapple.PROPERTY_GRAPLE_FORCE : double
        • AlchemicalArrowFrost.PROPERTY_WATER_FREEZE_RADIUS : double
        • AlchemicalArrowExplosive.PROPERTY_EXPLOSION_STRENGTH : int
        • AlchemicalArrowExplosive.PROPERTY_FUSE_TICKS : int
        • AlchemicalArrowEnder.PROPERTY_TELEPORT_ON_HIT_BLOCK : boolean
        • AlchemicalArrowDeath.PROPERTY_INSTANT_DEATH_POSSIBLE : boolean
        • AlchemicalArrowDeath.PROPERTY_INSTANT_DEATH_CHANCE : double
        • AlchemicalArrowAir.PROPERTY_BREATHE_RADIUS : double
      • Add AlchemicalCauldron#addIngredient(ItemStack) as a utility method
      • Document all previously non-documented classes and methods (primarily cauldron-related)
      • Due to massive changes in the API, it's recommended to read the Javadocs if you are a developer planning on writing add-ons
Return to update list...