Releases: Incendo/cloud
1.8.2
1.8.1
Fixed
- Core: Fixed last argument always being treated as greedy in suggestions (#428)
- Core: Remove redundant at literal in docs (formatting fix) (#427)
Changed
- Core: Improve ParameterInjectorRegistry#registerInjector JavaDoc (#423)
- Fabric: Exposed permissions API in apiElements to match old behavior when consumers update to loom 1.1 (which also fixes api
guardian being missing from the classpath)
1.8.0
Added
- Core: Added
CommandBuilderApplicableandCommand.Builder#apply(CommandBuilderApplicable)(#409) - Core: Expose failure reason when flag parsing fails (#380)
- Core: Allow registering injectors to
ParameterInjectorRegistryusing a class predicate instead of just a class (#402) - Core: Experimental option to allow flags to be parsed and suggested anywhere after the last literal in a command chain (#395)
- Core: New
Filterinterface used byFilteringCommandSuggestionProcessor, allowing custom filter behavior (#410) - Core: Helper to get the root index help topic (#415)
- Bukkit/Paper: Full support for Minecraft 1.19.3 (#412)
Fixed
- Core: Greedy arguments are now able to suggest after a space in the input, and will receive the full concatenated input
instead of just the queue head (#414) - Core: Fixed invalid suggestions when parsing of argument fails (#401)
- Core: Fixed commands not being removed from command collection on unregister (#408)
- Annotations: Fix argument annotation name not being processed (#397)
- Brigadier: Further fixes for suggestions on old versions of Minecraft
- Brigadier: Fixed handling of
GREEDY_FLAG_YIELDINGstring arguments - Minecraft-Extras: Fixed wrong color codes in TextColorArgument (#407)
- Minecraft-Extras: Removed double space when paginating with a blank help query
- Javacord: Fixed regex issue with certain prefixes (#400)
Changed
- Default suggestion processor ignores case when checking starts with (#410)
- Deprecated
newBuilderargument builder static factories, addedbuilderfactories to align with conventions for new
arguments (#419) - Core: Improve nullability annotations on generics in
CommandContext(#405) - Core: Made injection order of
ParameterInjectorRegistryconsistent (#402) - Bukkit/Paper: Rewrite Bukkit entity selector arguments using
WrappedBrigadierParserinstead of Bukkit API - Fabric: Updated for Minecraft 1.19.3, dropping support for previous versions (#411)
- Minecraft: Default suggestion processor now removes the part of a suggestion which is before the last user typed space in
the input, allowing for full sentence suggestions more easily, especially combined with other fixes in this update (#410)
1.7.1
Added
- Bukkit/Paper: Full support for Minecraft 1.19.1 and 1.19.2
Fixed
- Core: Fix unregistering wrong node in some cases (#389)
- Bukkit/Paper: Fix ItemStackPredicateArgument reflection
- Bukkit/Paper: Fix Brigadier completions on Minecraft 1.13.2
- Bukkit/Paper: Fix unregistering commands with newer versions of Commodore
1.7.0
Notes
Command Deletion
This release adds the ability to delete commands when using supported platform implementations (JDA, javacord, Bukkit, Paper & PircBotX).
This feature has limited support when using Bukkit/Paper. Command deletion does work. However, command reloading is still (and there are currently no plans for this to change) unsupported. Use it at your own risk.
Annotations
Do note the addition of the annotation processor. You can find installation instructions here. Instructions about how to utilise @CommandContainers will be added to the documentation soon. However, the gist of it can be found in the @CommandContainer JavaDoc. Furthermore, if you do use the annotation processor, you may find that your @CommandMethod annotated methods have some compile-time validation. This system will be expanded upon in the future, so feel free to suggest more features in the Issue Tracker.
Changes
Added
- Core: Allow for setting a custom
CaptionVariableReplacementHandleron the command manager (#352) - Core: Add
DurationArgumentfor parsingjava.time.Duration(#330) - Core: Add delegating command execution handlers (#363)
- Core: Add
builder()getter toCommand.Builder(#363) - Core: Add flag yielding modes to
StringArgumentandStringArrayArgument(#367) - Core: Add apiguardian
@APIannotations (#368) - Core: Deprecate prefixed getters/setters in
CommandManager(#377) - Core: Add repeatable flags (#378)
- Annotations: Annotation string processors (#353)
- Annotations:
@CommandContainerannotation processing (#364) - Annotations:
@CommandMethodannotation processing for compile-time validation (#365) - Add root command deletion support (core/pircbotx/javacord/jda/bukkit/paper) (#369,
#371) - Bukkit/Paper: Full support for Minecraft 1.19
Fixed
- Core: Fix missing caption registration for the regex caption (#351)
- Core: Fix NPE thrown on empty command tree (#337)
- Annotations: Fix MutableCommandBuilder Java/Kotlin interoperability issues (#342)
Changed
1.6.2
1.6.1
1.6.0
Added
- Kotlin: New module
cloud-kotlin-coroutines: Support for suspending command handlers in builders and the Kotlin builder DSL - Kotlin: New module
cloud-kotlin-coroutines-annotations: Support for suspending annotated command functions usingAnnotationParser<C>.installCoroutineSupport() - Flags can be bound to a permission
- Paper: Implement KeyedWorldArgument for matching worlds by their namespaced key
- Annotations: Parser parameter annotations are now also parsed for flags (#315)
Changed
- Added
executeFuturetoCommandExecutionHandlerwhich is now used internally. By default, this delegates to the old
executemethod - Added
@Liberalannotation to mark boolean arguments as liberal when using the annotation parser (#288) - Annotations: Apply builder modifiers from class annotations (#303)
- Annotations: Add default value to
@Argument, which will force the parser to infer the argument name from the parameter name - Annotations:
@CommandMethodcan now be used to annotate a class, allowing for a common literal prefix on all annotated command methods in that class. (#301)
Fixed
- Bukkit: Permission checking and syntax string for Bukkit '/help' command
- And/OrPermission factory method
ofdid not preserve the conditional tree - Formatting of literal arguments with no siblings in StandardCommandSyntaxFormatter
- Replaced improper usages of TypeToken#toString in error messages
- Fixed unhandled exceptions being swallowed when AsynchronousCommandExecutionCoordinator is configured with Synchronous Parsing enabled (#307)
1.5.0
Added
@Quotedannotation for theStringargument (#239)- Expose
minandmaxvalues on numerous number aruments (#255) CommandArgument.TypedBuilder, a variant ofCommandArgument.Builderdesigned for subclassing, that returns a self typeMappedArgumentParserandArgumentParser#mapfor creating mapped argument parsers- Helper methods for mapping values/failures of
ArgumentParseResults (ArgumentParseResult#mapParsedValue,ArgumentParseResult#flatMapParsedValue, andArgumentParseResult#mapFailure) - JDA: Role argument parser (#219)
- Brigadier:
WrappedBrigadierParserfor wrapping BrigadierArgumentTypes as cloudArgumentParsers - Bukkit: Implement parser for ProtoItemStack (#257)
- Bukkit: Implement parsers for ItemStackPredicate and BlockPredicate (#259)
- Bukkit: Support for Mojang mapped servers (#267)
- Fabric: Fabric implementation added (#223)
- Minecraft-Extras/Bukkit/Paper/Velocity:
AudienceProvider.nativeAudience,MinecraftHelp.createNative,BukkitCommandManager.createNative,PaperCommandManager.createNative,CloudInjectionModule.createNativehelper methods forAudiencesender types (#240)
Changed
Longargument parser is now public (#229)- JDA: Add isolation system to JDA user argument (#220)
- Bukkit: Use Command instead of TabCompleteEvent on Bukkit
- Bukkit: Minecraft 1.17 support added
Deprecated
- JDA: Deprecated old UserParser that did not take an isolation parameter (#220)
Fixed
1.4.0
Added
- Predicate command filters to the help system (#187)
- Allow flags to contain compound arguments (#192)
- Allow for components in exceptions and meta data (#200)
- Location2DArgument (#201)
- Expose the Command which led to
InvalidCommandSenderExceptions (#204) - Expose the CommandContext which led to
CommandExecutionExceptions (#204) - Helper methods for command flags to MutableCommandBuilder (#205)
- CommandFlag accepting getters to FlagContext (#206)
- More abstract description concept (#207)
- Predicate permissions (#210)
- Injection services (#211)
- Sponge v7 support (#212)
- Logical
ANDandORoperations forCommandPermissions (#213)
Changed
- Allow command argument names to include
_and-(#186) - Make it easier to use translatable components with MinecraftHelp (#197)
- Show "No result for query" when a multi-help topic is empty
- Use the method+field annotation accessor rather than the method accessor when injecting method parameters
Deprecated
- Description, and everything using Description directly (#207)
- ParameterInjectorRegistry#injectors (#211)