Skip to content

Commit

Permalink
prevent creating OptionData with OptionType#UNKNOWN (#2101)
Browse files Browse the repository at this point in the history
  • Loading branch information
mlnrDev committed Apr 20, 2022
1 parent ffd45b9 commit 03cc337
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 0 deletions.
Expand Up @@ -95,6 +95,7 @@ public class OptionData implements SerializableData
* If any of the following checks fail
* <ul>
* <li>{@code type} is not null</li>
* <li>{@code type} is not {@link OptionType#UNKNOWN UNKNOWN}</li>
* <li>{@code name} is alphanumeric (with dash), lowercase and between 1 and {@value #MAX_NAME_LENGTH} characters long</li>
* <li>{@code description} is between 1 and {@value #MAX_DESCRIPTION_LENGTH} characters long</li>
* </ul>
Expand All @@ -121,6 +122,7 @@ public OptionData(@Nonnull OptionType type, @Nonnull String name, @Nonnull Strin
* If any of the following checks fail
* <ul>
* <li>{@code type} is not null</li>
* <li>{@code type} is not {@link OptionType#UNKNOWN UNKNOWN}</li>
* <li>{@code name} is alphanumeric (with dash), lowercase and between 1 and {@value #MAX_NAME_LENGTH} characters long</li>
* <li>{@code description} is between 1 and {@value #MAX_DESCRIPTION_LENGTH} characters long</li>
* </ul>
Expand Down Expand Up @@ -149,6 +151,7 @@ public OptionData(@Nonnull OptionType type, @Nonnull String name, @Nonnull Strin
* If any of the following checks fail
* <ul>
* <li>{@code type} is not null</li>
* <li>{@code type} is not {@link OptionType#UNKNOWN UNKNOWN}</li>
* <li>{@code name} is alphanumeric (with dash), lowercase and between 1 and {@value #MAX_NAME_LENGTH} characters long</li>
* <li>{@code description} is between 1 and {@value #MAX_DESCRIPTION_LENGTH} characters long</li>
* <li>{@link OptionType#canSupportChoices()} is false then {@code isAutoComplete} is also false</li>
Expand All @@ -157,6 +160,7 @@ public OptionData(@Nonnull OptionType type, @Nonnull String name, @Nonnull Strin
public OptionData(@Nonnull OptionType type, @Nonnull String name, @Nonnull String description, boolean isRequired, boolean isAutoComplete)
{
Checks.notNull(type, "Type");
Checks.check(type != OptionType.UNKNOWN, "Cannot make option of unknown type!");
this.type = type;

setName(name);
Expand Down
Expand Up @@ -161,6 +161,7 @@ default SlashCommandData addOptions(@Nonnull Collection<? extends OptionData> op
* @throws IllegalArgumentException
* <ul>
* <li>If you try to mix subcommands/options/groups in one command.</li>
* <li>If the option type is {@link OptionType#UNKNOWN UNKNOWN}.</li>
* <li>If the option type is {@link OptionType#SUB_COMMAND} or {@link OptionType#SUB_COMMAND_GROUP}.</li>
* <li>If the provided option type does not support auto-complete</li>
* <li>If this option is required and you already added a non-required option.</li>
Expand Down Expand Up @@ -196,6 +197,7 @@ default SlashCommandData addOption(@Nonnull OptionType type, @Nonnull String nam
* @throws IllegalArgumentException
* <ul>
* <li>If you try to mix subcommands/options/groups in one command.</li>
* <li>If the option type is {@link OptionType#UNKNOWN UNKNOWN}.</li>
* <li>If the option type is {@link OptionType#SUB_COMMAND} or {@link OptionType#SUB_COMMAND_GROUP}.</li>
* <li>If this option is required and you already added a non-required option.</li>
* <li>If more than 25 options are provided.</li>
Expand Down Expand Up @@ -227,6 +229,7 @@ default SlashCommandData addOption(@Nonnull OptionType type, @Nonnull String nam
* @throws IllegalArgumentException
* <ul>
* <li>If you try to mix subcommands/options/groups in one command.</li>
* <li>If the option type is {@link OptionType#UNKNOWN UNKNOWN}.</li>
* <li>If the option type is {@link OptionType#SUB_COMMAND} or {@link OptionType#SUB_COMMAND_GROUP}.</li>
* <li>If this option is required and you already added a non-required option.</li>
* <li>If more than 25 options are provided.</li>
Expand Down

0 comments on commit 03cc337

Please sign in to comment.