Class SubcommandData

    • Constructor Detail

      • SubcommandData

        public SubcommandData​(@Nonnull
                              String name,
                              @Nonnull
                              String description)
        Create a subcommand builder.
        Parameters:
        name - The subcommand name, 1-32 lowercase alphanumeric characters
        description - The subcommand description, 1-100 characters
        Throws:
        IllegalArgumentException - If any of the following requirements are not met
        • The name must be lowercase alphanumeric (with dash), 1-32 characters long
        • The description must be 1-100 characters long
    • Method Detail

      • setName

        @Nonnull
        public SubcommandData setName​(@Nonnull
                                      String name)
        Configure the name
        Parameters:
        name - The lowercase alphanumeric (with dash) name, 1-32 characters
        Returns:
        The SubcommandData instance, for chaining
        Throws:
        IllegalArgumentException - If the name is null, not alphanumeric, or not between 1-32 characters
      • setDescription

        @Nonnull
        public SubcommandData setDescription​(@Nonnull
                                             String description)
        Configure the description
        Parameters:
        description - The description, 1-100 characters
        Returns:
        The SubcommandData instance, for chaining
        Throws:
        IllegalArgumentException - If the name is null or not between 1-100 characters
      • addOptions

        @Nonnull
        public SubcommandData addOptions​(@Nonnull
                                         OptionData... options)
        Adds up to 25 options to this subcommand.

        Required options must be added before non-required options!

        Parameters:
        options - The options to add
        Returns:
        The SubcommandData instance, for chaining
        Throws:
        IllegalArgumentException -
        • If this option is required and you already added a non-required option.
        • If more than 25 options are provided.
        • If the option name is not unique
        • If null is provided
      • addOptions

        @Nonnull
        public SubcommandData addOptions​(@Nonnull
                                         Collection<? extends OptionData> options)
        Adds up to 25 options to this subcommand.

        Required options must be added before non-required options!

        Parameters:
        options - The options to add
        Returns:
        The SubcommandData instance, for chaining
        Throws:
        IllegalArgumentException -
        • If this option is required and you already added a non-required option.
        • If more than 25 options are provided.
        • If the option name is not unique
        • If null is provided
      • addOption

        @Nonnull
        public SubcommandData addOption​(@Nonnull
                                        OptionType type,
                                        @Nonnull
                                        String name,
                                        @Nonnull
                                        String description,
                                        boolean required,
                                        boolean autoComplete)
        Adds an option to this subcommand.

        Required options must be added before non-required options!

        Parameters:
        type - The OptionType
        name - The lowercase option name, 1-32 characters
        description - The option description, 1-100 characters
        required - Whether this option is required (See OptionData.setRequired(boolean))
        autoComplete - Whether this option supports auto-complete via CommandAutoCompleteInteractionEvent, only supported for option types which support choices
        Returns:
        The SubcommandData instance, for chaining
        Throws:
        IllegalArgumentException -
        • If this option is required and you already added a non-required option.
        • If the provided option type does not support auto-complete
        • If more than 25 options are provided.
        • If the option name is not unique
        • If null is provided
      • addOption

        @Nonnull
        public SubcommandData addOption​(@Nonnull
                                        OptionType type,
                                        @Nonnull
                                        String name,
                                        @Nonnull
                                        String description,
                                        boolean required)
        Adds an option to this subcommand.

        Required options must be added before non-required options!

        Parameters:
        type - The OptionType
        name - The lowercase option name, 1-32 characters
        description - The option description, 1-100 characters
        required - Whether this option is required (See OptionData.setRequired(boolean))
        Returns:
        The SubcommandData instance, for chaining
        Throws:
        IllegalArgumentException -
        • If this option is required and you already added a non-required option.
        • If more than 25 options are provided.
        • If the option name is not unique
        • If null is provided
      • addOption

        @Nonnull
        public SubcommandData addOption​(@Nonnull
                                        OptionType type,
                                        @Nonnull
                                        String name,
                                        @Nonnull
                                        String description)
        Adds an option to this subcommand.
        The option is set to be non-required! You can use addOption(OptionType, String, String, boolean) to add a required option instead.

        Required options must be added before non-required options!

        Parameters:
        type - The OptionType
        name - The lowercase option name, 1-32 characters
        description - The option description, 1-100 characters
        Returns:
        The SubcommandData instance, for chaining
        Throws:
        IllegalArgumentException -
        • If this option is required and you already added a non-required option.
        • If more than 25 options are provided.
        • If the option name is not unique
        • If null is provided
      • getName

        @Nonnull
        public String getName()
        The configured name
        Returns:
        The name
      • getDescription

        @Nonnull
        public String getDescription()
        The configured description
        Returns:
        The description
      • fromData

        @Nonnull
        public static SubcommandData fromData​(@Nonnull
                                              DataObject json)
        Parses the provided serialization back into an SubcommandData instance.
        This is the reverse function for toData().
        Parameters:
        json - The serialized DataObject representing the subcommand
        Returns:
        The parsed SubcommandData instance, which can be further configured through setters
        Throws:
        ParsingException - If the serialized object is missing required fields
        IllegalArgumentException - If any of the values are failing the respective checks such as length