diff --git a/CHANGELOG.md b/CHANGELOG.md index c7a47d00..59b52f4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added parameter injectors - Store currently parsing command argument in the command context - Added a method to CloudBrigadierManager to enable or disable Brigadier native suggestions for specific argument types + - Added a method to get the failure reason of SelectorParseExceptions ### Changed - Allow for use of `@Completions` annotation with argument types other than String diff --git a/cloud-annotations/src/main/java/cloud/commandframework/annotations/injection/RawArgs.java b/cloud-annotations/src/main/java/cloud/commandframework/annotations/injection/RawArgs.java index c7ed5566..bf85bfe4 100644 --- a/cloud-annotations/src/main/java/cloud/commandframework/annotations/injection/RawArgs.java +++ b/cloud-annotations/src/main/java/cloud/commandframework/annotations/injection/RawArgs.java @@ -33,6 +33,7 @@ import java.lang.annotation.Target; * {@link cloud.commandframework.annotations.CommandMethod} *

* This should only be used on {@code String[]} + * @since 1.2.0 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) diff --git a/cloud-core/src/main/java/cloud/commandframework/CommandManager.java b/cloud-core/src/main/java/cloud/commandframework/CommandManager.java index a93540aa..019315b4 100644 --- a/cloud-core/src/main/java/cloud/commandframework/CommandManager.java +++ b/cloud-core/src/main/java/cloud/commandframework/CommandManager.java @@ -334,7 +334,7 @@ public abstract class CommandManager { * * @param name Command name * @param aliases Command aliases - * @param description Command description + * @param description Description for the root literal * @param meta Command meta * @return Builder instance */ @@ -394,7 +394,7 @@ public abstract class CommandManager { * * @param name Command name * @param meta Command meta - * @param description Command description + * @param description Description for the root literal * @param aliases Command aliases * @return Builder instance */ @@ -455,7 +455,7 @@ public abstract class CommandManager { * {@link Command command} instance * * @param name Command name - * @param description Command description + * @param description Description for the root literal * @param aliases Command aliases * @return Builder instance * @throws UnsupportedOperationException If the command manager does not support default command meta creation diff --git a/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/ParserException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/ParserException.java index 079e4ee5..98b4e637 100644 --- a/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/ParserException.java +++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/ParserException.java @@ -37,7 +37,7 @@ public class ParserException extends IllegalArgumentException { private final CaptionVariable[] captionVariables; protected ParserException( - final Class argumentParser, + final @NonNull Class argumentParser, final @NonNull CommandContext context, final @NonNull Caption errorCaption, final @NonNull CaptionVariable... captionVariables diff --git a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SelectorParseException.java b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SelectorParseException.java index 7f6878e4..816496b1 100644 --- a/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SelectorParseException.java +++ b/cloud-minecraft/cloud-bukkit/src/main/java/cloud/commandframework/bukkit/parsers/selector/SelectorParseException.java @@ -37,6 +37,7 @@ public final class SelectorParseException extends ParserException { private static final long serialVersionUID = 1900826717897819065L; private final String input; + private final FailureReason reason; /** * Construct a new EntitySelector parse exception @@ -58,6 +59,7 @@ public final class SelectorParseException extends ParserException { reason.getCaption(), CaptionVariable.of("input", input) ); + this.reason = reason; this.input = input; } @@ -70,6 +72,16 @@ public final class SelectorParseException extends ParserException { return input; } + /** + * Get the reason of failure for the selector parser + * + * @return Failure reason + * @since 1.2.0 + */ + public @NonNull FailureReason getFailureReason() { + return this.reason; + } + /** * Reasons for which selector parsing may fail *