Class SubcommandData
- java.lang.Object
-
- net.dv8tion.jda.api.interactions.commands.build.BaseCommand<CommandData>
-
- net.dv8tion.jda.api.interactions.commands.build.SubcommandData
-
- All Implemented Interfaces:
SerializableData
public class SubcommandData extends BaseCommand<CommandData> implements SerializableData
Builder for a Slash-Command subcommand.
-
-
Constructor Summary
Constructors Constructor Description SubcommandData(java.lang.String name, java.lang.String description)
Create an subcommand builder.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description SubcommandData
addOption(OptionType type, java.lang.String name, java.lang.String description)
Adds an option to this subcommand.SubcommandData
addOption(OptionType type, java.lang.String name, java.lang.String description, boolean required)
Adds an option to this subcommand.SubcommandData
addOptions(java.util.Collection<? extends OptionData> options)
Adds up to 25 options to this subcommand.SubcommandData
addOptions(OptionData... options)
Adds up to 25 options to this subcommand.static SubcommandData
fromData(DataObject json)
Parses the provided serialization back into an SubcommandData instance.DataObject
toData()
SerializedDataObject
for this object.-
Methods inherited from class net.dv8tion.jda.api.interactions.commands.build.BaseCommand
getDescription, getName, getOptions, setDescription, setName
-
-
-
-
Constructor Detail
-
SubcommandData
public SubcommandData(@Nonnull java.lang.String name, @Nonnull java.lang.String description)
Create an subcommand builder.- Parameters:
name
- The subcommand name, 1-32 lowercase alphanumeric charactersdescription
- The subcommand description, 1-100 characters- Throws:
java.lang.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
-
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
- Theoptions
to add- Returns:
- The SubcommandData instance, for chaining
- Throws:
java.lang.IllegalArgumentException
-- If this option is required and you already added a non-required option.
- If more than 25 options are provided.
- If null is provided
-
addOptions
@Nonnull public SubcommandData addOptions(@Nonnull java.util.Collection<? extends OptionData> options)
Adds up to 25 options to this subcommand.Required options must be added before non-required options!
- Parameters:
options
- Theoptions
to add- Returns:
- The SubcommandData instance, for chaining
- Throws:
java.lang.IllegalArgumentException
-- If this option is required and you already added a non-required option.
- If more than 25 options are provided.
- If null is provided
-
addOption
@Nonnull public SubcommandData addOption(@Nonnull OptionType type, @Nonnull java.lang.String name, @Nonnull java.lang.String description, boolean required)
Adds an option to this subcommand.Required options must be added before non-required options!
- Parameters:
type
- TheOptionType
name
- The lowercase option name, 1-32 charactersdescription
- The option description, 1-100 charactersrequired
- Whether this option is required (SeeOptionData.setRequired(boolean)
)- Returns:
- The SubcommandData instance, for chaining
- Throws:
java.lang.IllegalArgumentException
-- If this option is required and you already added a non-required option.
- If more than 25 options are provided.
- If null is provided
-
addOption
@Nonnull public SubcommandData addOption(@Nonnull OptionType type, @Nonnull java.lang.String name, @Nonnull java.lang.String description)
Adds an option to this subcommand.
The option is set to be non-required! You can useaddOption(OptionType, String, String, boolean)
to add a required option instead.Required options must be added before non-required options!
- Parameters:
type
- TheOptionType
name
- The lowercase option name, 1-32 charactersdescription
- The option description, 1-100 characters- Returns:
- The SubcommandData instance, for chaining
- Throws:
java.lang.IllegalArgumentException
-- If this option is required and you already added a non-required option.
- If more than 25 options are provided.
- If null is provided
-
toData
@Nonnull public DataObject toData()
Description copied from interface:SerializableData
SerializedDataObject
for this object.- Specified by:
toData
in interfaceSerializableData
- Overrides:
toData
in classBaseCommand<CommandData>
- Returns:
DataObject
-
fromData
@Nonnull public static SubcommandData fromData(@Nonnull DataObject json)
Parses the provided serialization back into an SubcommandData instance.
This is the reverse function fortoData()
.- Parameters:
json
- The serializedDataObject
representing the subcommand- Returns:
- The parsed SubcommandData instance, which can be further configured through setters
- Throws:
ParsingException
- If the serialized object is missing required fieldsjava.lang.IllegalArgumentException
- If any of the values are failing the respective checks such as length
-
-