# ⚠️ This version is incompatible with any plugin that used the CommandAPI version 8.X.X or below! (See documentation for more information)
## New features
- [#360](https://github.com/JorelAli/CommandAPI/issues/360), [#369](https://github.com/JorelAli/CommandAPI/pull/369) Made executor methods now use CommandArguments to allow for accessing arguments by name instead of index
- [#162](https://github.com/JorelAli/CommandAPI/issues/162), [#387](https://github.com/JorelAli/CommandAPI/issues/387), [#393](https://github.com/JorelAli/CommandAPI/pull/393) Added optional arguments
- [#388](https://github.com/JorelAli/CommandAPI/pull/388) Added new hook-paper-reload config option to toggle whether the CommandAPI hooks into /minecraft:reload
- Reworked the implementation of ItemArgument, so the ItemStack count is correctly reflected and ItemMeta is properly assigned
- Made the TeamArgument return a Team instead of a String
- Made the ObjectiveArgument return a Objective instead of a String
- [#391](https://github.com/JorelAli/CommandAPI/pull/391) Made the CommandAPI only complain about commands registered in a plugin.yml if this plugin.yml belongs to the plugin calling the CommandAPI
- [#422](https://github.com/JorelAli/CommandAPI/issues/422) Added a way to access the raw command a player typed from the executor
- [#431](https://github.com/JorelAli/CommandAPI/issues/431) Added a way to access more info to construct lists for the ListArgumentBuilder
- Added support for sidebar team colors using an enum for ScoreboardSlot
## Kotlin DSL changes
- Implemented resulting executors
- Implemented the FunctionArgument
- Several improvements for the CommandAPICommand DSL
## Bug fixes
- Fixed commandapi-preprocessor appearing in the plugin and shaded jar file
- [#390](https://github.com/JorelAli/CommandAPI/issues/390) Fixed .executesNative()'s CommandSender's getLocation() method returning the wrong pitch and yaw
- Fixed tags showing up in the BiomeArgument when they shouldn't have been doing so
- Fixed LocationArgument with BLOCK_POSITION not returning locations in unloaded chunks
- Fixed IntegerRangeArgument and FloatRangeArgument not working on Minecraft 1.16.4 and 1.16.5
- Fixed RecipeArgument not working on Minecraft 1.17
- Fixed TeamArgument not working on Minecraft 1.17
- Fixed AdventureChatArgument not working on Minecraft 1.17
- Fixed commands with no executors not being caught by the CommandAPI
- Fixed ParticleArgument producing "Invalid particle data type" warnings on Minecraft 1.16.5 and below
- Fixed FunctionArgument not working on Minecraft 1.17.x and 1.18.x
- Fixed NamespacedKeyArgument not working on Minecraft 1.18
- Fixed the FunctionArgument not correctly retrieving datapack (function) tags in 1.17+
- Removed some redundant vibration particle handling code that would never be run under any circumstances
## Documentation changes
- [#384](https://github.com/JorelAli/CommandAPI/issues/384) Fixed various particle data not being documented for the ParticleArgument documentation page
- Fixed broken links in the documentation (using [Michael-F-Bryan/mdbook-linkcheck](https://github.com/Michael-F-Bryan/mdbook-linkcheck))
- Refactored documentation argument page names for consistency
- Added Kotlin DSL examples
## Other changes
- Removed all previously deprecated constructors, classes and methods
- Completely refactored the entire CommandAPI project to help support other platforms
- Added a live dev build of the documentation at [commandapi-live-docs.jorel.dev](https://commandapi-live-docs.jorel.dev/)
- Improved mobile support for the CommandAPI home page
- Added the CommandAPI's Modrinth link to the CommandAPI home page
- Dropped support for Minecraft 1.13 - 1.14.4. Please use an older version of the CommandAPI, or raise an issue on GitHub to bring back support for these versions
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }