Minecraft Version Changes
- Adds support for Minecraft 1.21.5
- Drops support for Minecraft 1.16.5 - 1.19.4
Java Version Changes
- Changes CommandAPI from Java 16 to Java 17 (LTS)
New features
- #633 Adds an
AsyncOfflinePlayerArgumentto allow asynchronous fetching of an offline player
Bug fixes
- #477 Fixed
NativeProxyCommandSendernot being able to run Vanilla (and CommandAPI) commands - #578, #583, #629 Fixes
Bukkit#dispatchCommand()not working after Paper's Brigadier API changes - Fixes
PotionEffectArgument.NamespacedKeynot having suggestions in some versions
New changes
- #636 The default namespace has been updated from
minecraftto the plugin's name. If you are not shading, the default namespace is going to becommandapi. If you are shading, the default namespace is going to be your plugin's name. - Updates the config defaults for the datapack reloading step to be opt-in instead of opt-out.
- The CommandAPI will now tell you if you've messed up mappings (in addition to spewing messy errors)
- #634 Functions that use
Componenthave now been changed to useComponentLike - Added support for Velocity!
Website Changes
- The CommandAPI's new homepage is https://commandapi.dev/ (currently points to the documentation)
- Documentation has moved over to https://docs.commandapi.dev/
- JavaDocs have moved over to https://javadocs.commandapi.dev/
- The CommandAPI has moved from
github.com/JorelAli/CommandAPIto its own organization over atgithub.com/CommandAPI/CommandAPI
Bug fixes
- Fixes Mojang-Mapped version not working on Paper
Minecraft Version Changes
- Adds support for Minecraft 1.21.2 and 1.21.3
New improvements
Bug fixes
- Fixes Folia startup error due to scheduling a task with a delay of 0
Minecraft version changes
- Adds support for Minecraft 1.21.1
Bug fixes
- #588 Fix Folia scheduling methods using the wrong scheduler implementation
- #580 Fix running a non-vanilla command on paper in Minecraft functions with the CommandAPI throwing runtime exceptions
- Fix namespaces not being propagated when registering subcommands
New features
- #577 Adds a
CommandAPIBukkit#failWithAdventureComponent(ComponentLike)method
Bug fixes
- Fixes the CommandAPI not loading correctly on Paper 1.21
Minecraft version changes
- Adds support for Minecraft 1.21
- Drops support for Minecraft 1.16.1, 1.16.2, 1.16.3 and 1.16.4
Bug fixes
- Fixes
ResourceLocationArgumentnot working in 1.20.5 and 1.20.6 - Fixes
/minecraft:reloaddeleting commands on Paper 1.20.6 (build 65+)
Minecraft version changes
- Adds support for Minecraft 1.20.5 and 1.20.6
- Drops support for Minecraft 1.15.x
Bug fixes
- Fixed implementation issues with
FunctionArgumentfrom 9.3.0 - #536, #537 Fixed
MultiLiteralArgumenthelp displaying the node name instead of the literal text - #524 Fixes
CommandAPIBukkit.get().getTags()erroring in 1.20.4
New features
- #540 Add methods to "safe-cast" arguments to
CommandArguments - #495 Adds a parameter to
EntitySelectorArgumentto allow failure when no entity lists are empty - #367, #509 Adds the ability to register commands with a custom namespace
- #523 Exposed more details of the
CommandPermission - #490 Adds support for Mojang-mapped servers via the CommandAPI config
- #541 Adds support for a
NamespacedKeyvariant for thePotionEffectArgument
Minecraft version changes
- Adds support for Minecraft 1.20.3 and 1.20.4
Bug fixes
- Fixed bug where calling SimpleFunctionWrapper.getTag() on 1.19+ would throw an error
- #499 Fix typo in Adventure methods for tooltips
- Fixed
executesFeedbackForwarding()not checking for aFeedbackForwardingCommandSendercorrectly thus allowing every executor to execute the command - #473 Fix RGB colors in
CustomArgument.CustomArgumentException#fromStringcreating the wrong colors
New features
- Adds
ExecutionInfoexecutors for the Kotlin DSL - #497 Adds support for
RemoteConsoleCommandSender
Known issues
- Functions generated by the
FunctionArgumentwill always return a value of1when executed, regardless if the function succeeds, fails or returns a result - Functions generated by the
FunctionArgumentwill always return an empty array of commands when you retrieve the list of commands in that function
New features
- #487 Added support for disabling integer centering for location arguments
- #482 Adds Kotlin DSL support for delegated properties
Bug fixes
- #488 Fixed calling CommandAPI commands with
Bukkit.createCommandSender()not working on paper - Fixed a bug where the CommandAPI would throw errors when unregistering commands when a command exists with a
:at the end of its name
Minecraft version changes
- Adds support for 1.20.2
New features
- #459 Added the ability to access raw arguments in the command executor
- #469 Adds
AdventureChatColorArgument - #417 Added the ability for commands to be registered and unregistered while the server is running
Bug fixes
- Fixes the CommandAPI disabling datapacks on 1.20.1 Paper servers because it thought it was running on a Folia server
Minecraft version changes
- Adds support for 1.20.1
New features
- #455 Reworked the MapArgument with various features, including:
- Optional quotes around keys and values
- No restriction on the characters that are allowed in a key (previously only letters, digits, and underscore)
- May define a String separator between key-value pairs (instead of just space)
Bug fixes
- Fixes
use-latest-nms-versionnot pointing to the right version
Minecraft version changes
- Adds support for Minecraft 1.20
New features
- Adds the ability to retrieve
LiteralArguments andMultiLiteralArguments by their node names - #363 Adds
withUsage()method to customise command usage info - #371 Updates default short description to now mention the plugin creating the command
Bug fixes
- Fixed literal arguments in command conversion causing errors due to parsing problems
Bug fixes
- Fixed
MapArgumentnot allowing player names as keys because we forgot to allow the_character - Fixed
/execute as ...not working because we were casting to a player instead of a proxied sender - Fixed
IntegerArgumentfailing to compile in certain circumstances
New features
- Added
CommandArguments.count()utility method to get the number of arguments - Added
CommandArguments.getOptional()methods - Added
CustomArgumentExceptionstatic factory methods to accept Spigot/Paper text components
Platform support changes
- Added basic support for Folia


