D++ (DPP)
C++ Discord API Bot Library
dpp::command_option Struct Reference

Each command option is a command line parameter. It can have a type (see dpp::command_option_type), a name, a description, can be required or optional, and can have zero or more choices (for multiple choice), plus options. Adding options acts like sub-commands and can contain more options. More...

#include <appcommand.h>

+ Inheritance diagram for dpp::command_option:
+ Collaboration diagram for dpp::command_option:

Public Member Functions

 command_option ()=default
 Construct a new command option object. More...
 
virtual ~command_option ()=default
 Destroy the command option object. More...
 
command_optionadd_localization (const std::string &language, const std::string &_name, const std::string &_description)
 Add a localisation for this slash command option. More...
 
 command_option (command_option_type t, const std::string &name, const std::string &description, bool required=false)
 Construct a new command option object. More...
 
command_optionadd_choice (const command_option_choice &o)
 Add a multiple choice option. More...
 
command_optionset_min_value (command_option_range min_v)
 Set the minimum numeric value of the option. Only valid if the type is co_number or co_integer. More...
 
command_optionset_max_value (command_option_range max_v)
 Set the maximum numeric value of the option. Only valid if the type is co_number or co_integer. More...
 
command_optionset_min_length (command_option_range min_v)
 Set the minimum string length of the option. Only valid if the type is co_string. More...
 
command_optionset_max_length (command_option_range max_v)
 Set the maximum string length of the option. Only valid if the type is co_string. More...
 
command_optionadd_option (const command_option &o)
 Add a sub-command option. More...
 
command_optionadd_channel_type (const channel_type ch)
 Add channel type for option (only for co_channel type options) More...
 
command_optionset_auto_complete (bool autocomp)
 Set the auto complete state. More...
 
command_optionfill_from_json (nlohmann::json *j)
 Fill object properties from JSON. Fills options recursively. More...
 
virtual std::string build_json (bool with_id=false) const
 Build JSON string from the object. More...
 

Public Attributes

command_option_type type
 Option type (what type of value is accepted) More...
 
std::string name
 Option name (1-32 chars) More...
 
std::string description
 Option description (1-100 chars) More...
 
bool required
 True if this is a mandatory parameter. More...
 
bool focused
 True if the user is typing in this field, when sent via autocomplete. More...
 
command_value value
 Set only by autocomplete went sent as part of an interaction. More...
 
std::vector< command_option_choicechoices
 List of choices for multiple choice command. More...
 
bool autocomplete
 True if this option supports auto completion. More...
 
std::vector< command_optionoptions
 Sub-commands. More...
 
std::vector< channel_typechannel_types
 Allowed channel types for channel snowflake id options. More...
 
command_option_range min_value
 Minimum value allowed, for co_number and co_integer types only. More...
 
command_option_range max_value
 Maximum value allowed, for co_number and co_integer types only. More...
 
std::map< std::string, std::string > name_localizations
 Localisations of command name. More...
 
std::map< std::string, std::string > description_localizations
 Localisations of command description. More...
 

Detailed Description

Each command option is a command line parameter. It can have a type (see dpp::command_option_type), a name, a description, can be required or optional, and can have zero or more choices (for multiple choice), plus options. Adding options acts like sub-commands and can contain more options.

Constructor & Destructor Documentation

◆ command_option() [1/2]

dpp::command_option::command_option ( )
default

Construct a new command option object.

◆ ~command_option()

virtual dpp::command_option::~command_option ( )
virtualdefault

Destroy the command option object.

◆ command_option() [2/2]

dpp::command_option::command_option ( command_option_type  t,
const std::string &  name,
const std::string &  description,
bool  required = false 
)

Construct a new command option object.

Parameters
tOption type
nameOption name
descriptionOption description
requiredTrue if this is a mandatory parameter

Member Function Documentation

◆ add_channel_type()

command_option & dpp::command_option::add_channel_type ( const channel_type  ch)

Add channel type for option (only for co_channel type options)

Parameters
chtype to set
Returns
command_option& return a reference to self for chaining of calls

◆ add_choice()

command_option & dpp::command_option::add_choice ( const command_option_choice o)

Add a multiple choice option.

Parameters
ochoice to add
Returns
command_option& returns a reference to self for chaining of calls
Exceptions
dpp::exceptioncommand_option is an autocomplete, so choices cannot be added

◆ add_localization()

command_option & dpp::command_option::add_localization ( const std::string &  language,
const std::string &  _name,
const std::string &  _description 
)

Add a localisation for this slash command option.

See also
https://discord.com/developers/docs/reference#locales
Parameters
languageName of language, see the list of locales linked to above.
_namename of slash command option in the specified language
_descriptiondescription of slash command option in the specified language
Returns
command_option& reference to self for fluent chaining

◆ add_option()

command_option & dpp::command_option::add_option ( const command_option o)

Add a sub-command option.

Parameters
oSub-command option to add
Returns
command_option& return a reference to self for chaining of calls

◆ build_json()

virtual std::string dpp::json_interface< command_option >::build_json ( bool  with_id = false) const
inlinevirtualinherited

Build JSON string from the object.

Parameters
with_idInclude the ID in the JSON
Returns
std::string JSON string version of object

◆ fill_from_json()

command_option & dpp::command_option::fill_from_json ( nlohmann::json *  j)

Fill object properties from JSON. Fills options recursively.

Parameters
jJSON to fill from
Returns
command_option& Reference to self

◆ set_auto_complete()

command_option & dpp::command_option::set_auto_complete ( bool  autocomp)

Set the auto complete state.

Parameters
autocompTrue to enable auto completion for this option
Returns
command_option& return a reference to self for chaining of calls
Exceptions
dpp::exceptionYou attempted to enable auto complete on a command_option that has choices added to it

◆ set_max_length()

command_option & dpp::command_option::set_max_length ( command_option_range  max_v)

Set the maximum string length of the option. Only valid if the type is co_string.

Parameters
max_vMaximum value
Returns
command_option& return a reference to sef for chaining of calls

◆ set_max_value()

command_option & dpp::command_option::set_max_value ( command_option_range  max_v)

Set the maximum numeric value of the option. Only valid if the type is co_number or co_integer.

Parameters
max_vMaximum value
Returns
command_option& return a reference to sef for chaining of calls

◆ set_min_length()

command_option & dpp::command_option::set_min_length ( command_option_range  min_v)

Set the minimum string length of the option. Only valid if the type is co_string.

Parameters
min_vMinimum value
Returns
command_option& return a reference to sef for chaining of calls

◆ set_min_value()

command_option & dpp::command_option::set_min_value ( command_option_range  min_v)

Set the minimum numeric value of the option. Only valid if the type is co_number or co_integer.

Parameters
min_vMinimum value
Returns
command_option& return a reference to sef for chaining of calls

Member Data Documentation

◆ autocomplete

bool dpp::command_option::autocomplete

True if this option supports auto completion.

◆ channel_types

std::vector<channel_type> dpp::command_option::channel_types

Allowed channel types for channel snowflake id options.

◆ choices

std::vector<command_option_choice> dpp::command_option::choices

List of choices for multiple choice command.

◆ description

std::string dpp::command_option::description

Option description (1-100 chars)

◆ description_localizations

std::map<std::string, std::string> dpp::command_option::description_localizations

Localisations of command description.

◆ focused

bool dpp::command_option::focused

True if the user is typing in this field, when sent via autocomplete.

◆ max_value

command_option_range dpp::command_option::max_value

Maximum value allowed, for co_number and co_integer types only.

◆ min_value

command_option_range dpp::command_option::min_value

Minimum value allowed, for co_number and co_integer types only.

◆ name

std::string dpp::command_option::name

Option name (1-32 chars)

◆ name_localizations

std::map<std::string, std::string> dpp::command_option::name_localizations

Localisations of command name.

◆ options

std::vector<command_option> dpp::command_option::options

Sub-commands.

◆ required

bool dpp::command_option::required

True if this is a mandatory parameter.

◆ type

command_option_type dpp::command_option::type

Option type (what type of value is accepted)

◆ value

command_value dpp::command_option::value

Set only by autocomplete went sent as part of an interaction.

D++ Library version 10.0.35D++ Library version 10.0.34D++ Library version 10.0.33D++ Library version 10.0.32D++ Library version 10.0.31D++ Library version 10.0.30D++ Library version 10.0.29D++ Library version 10.0.28D++ Library version 10.0.27D++ Library version 10.0.26D++ Library version 10.0.25D++ Library version 10.0.24D++ Library version 10.0.23D++ Library version 10.0.22D++ Library version 10.0.21D++ Library version 10.0.20D++ Library version 10.0.19D++ Library version 10.0.18D++ Library version 10.0.17D++ Library version 10.0.16D++ Library version 10.0.15D++ Library version 10.0.14D++ Library version 10.0.13D++ Library version 10.0.12D++ Library version 10.0.11D++ Library version 10.0.10D++ Library version 10.0.9D++ Library version 10.0.8D++ Library version 10.0.7D++ Library version 10.0.6D++ Library version 10.0.5D++ Library version 10.0.4D++ Library version 10.0.3D++ Library version 10.0.2D++ Library version 10.0.1D++ Library version 10.0.0D++ Library version 9.0.19D++ Library version 9.0.18D++ Library version 9.0.17D++ Library version 9.0.16D++ Library version 9.0.15D++ Library version 9.0.14D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0