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.2:
- #397 Fixed issue where the WorldArgument wouldn't work in 1.16.5
New improvements from 8.7.0:
- Fixed
ParticleArgument
not working in 1.19.3 - Fixed
EnchantmentArgument
not working in 1.19.3 -Hotfixed a permission check bug when permissions are incorrectly initialized - Hotfixed a null pointer exception when autocompletion occurs via redirected commands
- Fixed JavaDocs not showing in your IDE when using commandapi-shade
New improvements from 8.5.1:
- #307 Adds a CommandArgument to let users submit commands as an argument
- #334 Adds support for chat components in CommandAPI.fail()
- #338 Adds a way to clone a CommandAPICommand instance using instance.copy()
- #351 Adds support for a ListArgument with the TextArgument backend, to allow inline lists
- #358 Adds a new WorldArgument argument that lets you get a list of Minecraft dimensions
- Adds support for SoundArgument to return string-based sounds via the NamespacedKey
- #352 Adds some helper methods to the LiteralArgument to make it easier to use via a static import
- #357 Adds a Kotlin DSL to register commands in Kotlin!
New improvements from 8.5.0:
- Adds support for Minecraft 1.19.2
- Fixes bug with players being kicked when using chat preview with colors on 1.19+
- Prevents developers creating dodgy commands with duplicate argument node names that caused clients to crash when they tried - to run those commands
- Fix subcommand internal information being overwritten at runtime when the parent command was registered
- Fixes time arguments not working in 1.17+
- Fixes namespaced key arguments not working in 1.17
- Fixes commands not working in 1.17 and 1.18
- Fixes server reloading on Spigot throwing asynchronous-related exceptions
- Fixes argument suggestions not working if a subcommand's node name is the same as the argument's node name
- Improves backend code for chatcolor, enchantment and potion arguments in 1.17+
- Optimize code size for 1.19+
- Improves list arguments to only display suggestions for the last item and prevent list arguments accepting unlisted items