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
*