This will be used for Sponge & Fabric, that both require command registration to happen (at latest) in specific events. This way we lock writing after that event has occurred.
As a side effect, we're able to collect & merge all commands before registering them to the platform, which means we don't have to hackily force-inject duplicate commands.
* ✨ Add LocationArgument to cloud-bukkit
* 🎨 Use the Bukkit CommandSender from the command context in LocationArgument
* 🐛 Fixed quoted parsing in StringArgument
* 📚 Fix code style
Co-authored-by: jmp <jasonpenilla2@me.com>
* ✅ Add a test for suggestions after an invalid literal
* 🐛 Fix wrong suggestions following an invalid literal
* 📚 Document literal suggestion fix in CHANGELOG
Co-authored-by: Alexander Söderberg <sauilitired@gmail.com>
* 🐛 Fix multiple chained optionals not working correctly
There is a problem where the child arguments never forwarded their commands correctly. This will now fix itself when necessary.
* 📚 Add CHANGELOG entry for change
* ✨ Add a new caption system to allow for the configuration of…
* ✨ Add caption support to all numerical types
* Add more standard pasres to the registry
* Add default messages for captions
* ✨ Improve captions in core
* Add captions for Bukkit
* ✨ Add FactoryDelegatingCaptionRegistry.java
Essentially, when there's an intermediary command and a child command with a variable leading argument, only the permission for the leading argument would be checked. In this case, that permission should only be considered if there's no more input. This fixes#46.
Conflicting commands will now obey plugin load order. Brigadier aliases will be created for namespaced aliases. No asynchronous completions will be provided for conflicting commands and will only be provided for the namespaced label. Furthermore, error handling the command tree has been improved and the methods now return a pair, rather than an optional. This means that there's no need to catch and unwrap exceptions and they will be forwarded in the correct form.