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
ResourceLocationArgument
not working in 1.20.5 and 1.20.6 - Fixes
/minecraft:reload
deleting 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
FunctionArgument
from 9.3.0 - #536, #537 Fixed
MultiLiteralArgument
help 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
EntitySelectorArgument
to 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
NamespacedKey
variant 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 aFeedbackForwardingCommandSender
correctly thus allowing every executor to execute the command - #473 Fix RGB colors in
CustomArgument.CustomArgumentException#fromString
creating the wrong colors
New features
- Adds
ExecutionInfo
executors for the Kotlin DSL - #497 Adds support for
RemoteConsoleCommandSender
Known issues
- Functions generated by the
FunctionArgument
will always return a value of1
when executed, regardless if the function succeeds, fails or returns a result - Functions generated by the
FunctionArgument
will 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-version
not pointing to the right version
Minecraft version changes
- Adds support for Minecraft 1.20
New features
- Adds the ability to retrieve
LiteralArgument
s andMultiLiteralArgument
s 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
MapArgument
not 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
IntegerArgument
failing to compile in certain circumstances
New features
- Added
CommandArguments.count()
utility method to get the number of arguments - Added
CommandArguments.getOptional()
methods - Added
CustomArgumentException
static factory methods to accept Spigot/Paper text components
Platform support changes
- Added basic support for Folia
⚠️ 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, #369 Made executor methods now use CommandArguments to allow for accessing arguments by name instead of index
- #162, #387, #393 Added optional arguments
- #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 Made the CommandAPI only complain about commands registered in a plugin.yml if this plugin.yml belongs to the plugin calling the CommandAPI
- #422 Added a way to access the raw command a player typed from the executor
- #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 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 Fixed various particle data not being documented for the ParticleArgument documentation page
- Fixed broken links in the documentation (using 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
- 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
New improvements from 8.7.6:
- Adds support for Minecraft 1.19.4
New improvements from 8.7.5:
- Fixes NullPointerException that occurs rarely in the CommandAPI's post-loading step