Minecraft Version Changes
- Adds support for Minecraft 1.21.9 and 1.21.10
- Drops support for Minecraft 1.20.5 and below on Paper
Bug Fixes
- #631 Fixes unregistered commands reappearing after a minecraft:reload. This comes with some other notable changes around command registrations and unregistrations. You can read about these on the command unregistration page in the documentation.
- #608 The RecipeArgument no longer throws any exceptions on Spigot
- #494, #503 Fixes the ConcurrentModificationException from happening when registering/unregistering commands at runtime
Module Changes
- #414, #517 Splits up the CommandAPI into modules specific for Paper and Spigot:
- Removes the
commandapi-bukkit-shademodule and thecommandapi-bukkit-shade-mojang-mappedmodule - Adds the
commandapi-paper-coreand thecommandapi-paper-shademodules which are made to work on Paper - Adds the
commandapi-spigot-coreand thecommandapi-spigot-shademodules which are made to work on Spigot - Adds the
commandapi-paper-test-toolkitand thecommandapi-spigot-test-toolkitwhich are replacingcommandapi-bukkit-test-toolkitfor Paper and Spigot respectively - Moves and adds a few Kotlin DSL modules:
commandapi-core-kotlin -> commandapi-kotlin-corecommandapi-bukkit-kotlin -> commandapi-kotlin-bukkitcommandapi-velocity-kotlin -> commandapi-kotlin-velocity- Newly added:
commandapi-kotlin-paper - Newly added:
commandapi-kotlin-spigot
New features
- On Paper it is now possible to register commands at bootstrap
API Changes
- Changes the
CommandAPIBukkitConfigclass into an abstract one in favour of the newly addedCommandAPIPaperConfigorCommandAPISpigotConfigclasses, depending on the modules you use - The
FloatRangeArgumenthas been renamed toDoubleRangeArgumentand now returns aDoubleRange - The
PlayerArgumentandOfflinePlayerArgumenthave been replaced by thePlayerProfileArgumentwhich returns aList<PlayerProfile>. ThePlayerProfileclass changes depending on if you are on Paper or on Spigot. Use theEntitySelectorArgument.OnePlayerif you want aPlayerobject. - The
AsyncOfflinePlayerArgumenthas been replaced by theAsyncPlayerProfileArgument - The
ChatArgument,ChatComponentArgumentandChatColorArgumentdo no longer have any Adventure prefixes and return different types depending on the platform. - The
ChatArgumentreturns aSignedMessageobject on Paper. Also resolves #381 - The
BlockStateArgumentnow returns aBlockStateobject instead of aBlockDataobject
Config Changes
- Replaces the
use-latest-nms-versionandbe-lenient-for-minor-versionsconfig options with afallback-to-latest-nmsconfig option:- When loading the CommandAPI and this config option is set to true it will first check if the current version is supported and chooses that
- In case the current version isn't a supported version, the CommandAPI will choose the latest nms version available which might or might not work correctly
- This config option is set to true by default on Paper and false on Spigot
Minecraft version changes
- Adds support for Minecraft 1.21.8
Minecraft version changes
- Adds support for Minecraft 1.21.7
Minecraft version changes
- Adds support for Minecraft 1.21.6
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


