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
CommandBuilderApplicable
andCommand.Builder#apply(CommandBuilderApplicable)
(#409) - Core: Expose failure reason when flag parsing fails (#380)
- Core: Allow registering injectors to
ParameterInjectorRegistry
using 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
Filter
interface 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_YIELDING
string 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
newBuilder
argument builder static factories, addedbuilder
factories to align with conventions for new
arguments (#419) - Core: Improve nullability annotations on generics in
CommandContext
(#405) - Core: Made injection order of
ParameterInjectorRegistry
consistent (#402) - Bukkit/Paper: Rewrite Bukkit entity selector arguments using
WrappedBrigadierParser
instead 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 @CommandContainer
s 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
CaptionVariableReplacementHandler
on the command manager (#352) - Core: Add
DurationArgument
for parsingjava.time.Duration
(#330) - Core: Add delegating command execution handlers (#363)
- Core: Add
builder()
getter toCommand.Builder
(#363) - Core: Add flag yielding modes to
StringArgument
andStringArrayArgument
(#367) - Core: Add apiguardian
@API
annotations (#368) - Core: Deprecate prefixed getters/setters in
CommandManager
(#377) - Core: Add repeatable flags (#378)
- Annotations: Annotation string processors (#353)
- Annotations:
@CommandContainer
annotation processing (#364) - Annotations:
@CommandMethod
annotation 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
executeFuture
toCommandExecutionHandler
which is now used internally. By default, this delegates to the old
execute
method - Added
@Liberal
annotation 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:
@CommandMethod
can 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
of
did 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
@Quoted
annotation for theString
argument (#239)- Expose
min
andmax
values on numerous number aruments (#255) CommandArgument.TypedBuilder
, a variant ofCommandArgument.Builder
designed for subclassing, that returns a self typeMappedArgumentParser
andArgumentParser#map
for creating mapped argument parsers- Helper methods for mapping values/failures of
ArgumentParseResult
s (ArgumentParseResult#mapParsedValue
,ArgumentParseResult#flatMapParsedValue
, andArgumentParseResult#mapFailure
) - JDA: Role argument parser (#219)
- Brigadier:
WrappedBrigadierParser
for wrapping BrigadierArgumentType
s as cloudArgumentParser
s - 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.createNative
helper methods forAudience
sender types (#240)
Changed
Long
argument 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
InvalidCommandSenderException
s (#204) - Expose the CommandContext which led to
CommandExecutionException
s (#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
AND
andOR
operations forCommandPermission
s (#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)