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-shade
module and thecommandapi-bukkit-shade-mojang-mapped
module - Adds the
commandapi-paper-core
and thecommandapi-paper-shade
modules which are made to work on Paper - Adds the
commandapi-spigot-core
and thecommandapi-spigot-shade
modules which are made to work on Spigot - Adds the
commandapi-paper-test-toolkit
and thecommandapi-spigot-test-toolkit
which are replacingcommandapi-bukkit-test-toolkit
for Paper and Spigot respectively - Moves and adds a few Kotlin DSL modules:
commandapi-core-kotlin -> commandapi-kotlin-core
commandapi-bukkit-kotlin -> commandapi-kotlin-bukkit
commandapi-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
CommandAPIBukkitConfig
class into an abstract one in favour of the newly addedCommandAPIPaperConfig
orCommandAPISpigotConfig
classes, depending on the modules you use - The
FloatRangeArgument
has been renamed toDoubleRangeArgument
and now returns aDoubleRange
- The
PlayerArgument
andOfflinePlayerArgument
have been replaced by thePlayerProfileArgument
which returns aList<PlayerProfile>
. ThePlayerProfile
class changes depending on if you are on Paper or on Spigot. Use theEntitySelectorArgument.OnePlayer
if you want aPlayer
object. - The
AsyncOfflinePlayerArgument
has been replaced by theAsyncPlayerProfileArgument
- The
ChatArgument
,ChatComponentArgument
andChatColorArgument
do no longer have any Adventure prefixes and return different types depending on the platform. - The
ChatArgument
returns aSignedMessage
object on Paper. Also resolves #381 - The
BlockStateArgument
now returns aBlockState
object instead of aBlockData
object
Config Changes
- Replaces the
use-latest-nms-version
andbe-lenient-for-minor-versions
config options with afallback-to-latest-nms
config 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
Bug fixes
- Fixes command unregistration not working on Paper
- #645 Ignore requirements for null senders
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
AsyncOfflinePlayerArgument
to allow asynchronous fetching of an offline player
Bug fixes
- #477 Fixed
NativeProxyCommandSender
not being able to run Vanilla (and CommandAPI) commands - #578, #583, #629 Fixes
Bukkit#dispatchCommand()
not working after Paper's Brigadier API changes - Fixes
PotionEffectArgument.NamespacedKey
not having suggestions in some versions
New changes
- #636 The default namespace has been updated from
minecraft
to 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
Component
have 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/CommandAPI
to its own organization over atgithub.com/CommandAPI/CommandAPI