|— Dinnerbone on Brigadier|
Brigadier is a command parser and dispatcher, designed and developed for Java Edition, mainly maintained by Dinnerbone. It is the first library used by Java Edition that Mojang has released under an open-source license.
Brigadier is used for parsing and executing string commands.
- Define command nodes with argument or literal branches
- Modify/fork command source in command contexts
- Active inspection on command parsing
- Listing all possible commands from current command node
- Handle command result real-time on execution success/failure
- Recursive command node redirection
/execute runredirects to the root node of the vanilla command dispatcher
Limitations and issues
Brigadier has various numbers of limitations while executing the command, such as the numeric limitations on integer data types such as
/weather, and floating-point data types such as
/time, making many integer values parsed in the commands inaccessible.
Since 1.15, whenever the chat cursor is positioned at the start of a node after a whitespace character, command suggestion will say "Incorrect argument for command at position <position number>" instead of displaying the command suggestions, especially the command arguments that requires numbers or strings before parsing and the trailing spaces beyond the command argument list.
|October 25, 2014||Dinnerbone mentions Brigadier in the comments on.|
|July 27, 2017||Dinnerbone discloses a non-obfuscated command parser library called "brigadier".|
|1.13||17w45a||Commands are now handled with Brigadier.|
|Minecraft introduces Brigadier as a dependency.|
|September 26, 2018||Brigadier is open sourced under the MIT License.|
|1.14||19w08a||Now allows single quotes for strings in commands.|
|1.0.15||September 26, 2018||
|1.0.17||February 19, 2019||
|1.0.18||July 16, 2021||
/executecommand tree, which utilizes an overwhelming amount of the brigadier features.
/tagcommand tree, showing the difference between actual executed commands (red nodes) versus the first literal after the root (the "tag" box)
/msgcommand tree, showing that aliases have been implemented by brigadier's command node redirection functionality (dashed lines)
- "Programmers: Play with Minecraft's Inner Workings!" – Minecraft.net
- "Mojang/brigadier: Brigadier is a command parser & dispatcher, designed and developed for Minecraft: Java Edition." – GitHub.
- "Contributors to Mojang/brigadier" – GitHub.
- "We just pulled in our very first community contributed code into a Minecraft Java Edition official library. Woo! 🎉 Want to help out? The first library we've opened is our command engine - it's MIT licensed so you can freely use it in your own projects!" – @Dinnerbone on Twitter
- "Added copyright header, LICENSE, and README.md by Dinnerbone · Pull Request #8 · Mojang/brigadier" by boq – Mojang/brigadier – GitHub. "I'd argue that most people identify command by first literal after root, so that would make "command" a sub-tree and not just path leading to leaf node. /bikeshedding"
- "Inspecting a command" – Mojang/brigadier – GitHub.
- "Displaying usage info" – Mojang/brigadier – GitHub.
- "Preparation for OSS :)" - Preparing for the open source software – Mojang/brigadier – GitHub
- "Allow single quote in strings by boq · Pull Request #52" – Mojang/brigadier – GitHub.
- "Release 1.0.15 · Mojang/brigadier" – GitHub.
- "Release 1.0.17 · Mojang/brigadier" – GitHub.
- "Release 1.0.18 · Mojang/brigadier" – GitHub.