D++ (DPP)
C++ Discord API Bot Library
dpp::slashcommand Class Reference

Represents an application command, created by your bot either globally, or on a guild. More...

#include <appcommand.h>

+ Inheritance diagram for dpp::slashcommand:
+ Collaboration diagram for dpp::slashcommand:

Public Member Functions

 slashcommand ()
 Construct a new slashcommand object. More...
 
 slashcommand (const std::string &_name, const std::string &_description, const dpp::snowflake _application_id)
 Construct a new slashcommand object. More...
 
virtual ~slashcommand ()
 Destroy the slashcommand object. More...
 
slashcommandadd_option (const command_option &o)
 Add an option (parameter) More...
 
slashcommandset_type (slashcommand_contextmenu_type _type)
 Set the type of the slash command (only for context menu entries) More...
 
slashcommandset_name (const std::string &n)
 Set the name of the command. More...
 
slashcommandset_description (const std::string &d)
 Set the description of the command. More...
 
slashcommandset_application_id (snowflake i)
 Set the application id of the command. More...
 
slashcommandadd_permission (const command_permission &p)
 Adds a permission to the command. More...
 
slashcommanddisable_default_permissions ()
 Disable default permissions, command will be unusable unless permissions are overridden with add_permission and dpp::guild_command_edit_permissions. More...
 
slashcommandfill_from_json (nlohmann::json *j)
 Fill object properties from JSON. More...
 
std::string build_json (bool with_id=false) const
 Build a json string for this object. More...
 
double get_creation_time () const
 Get the creation time of this object according to Discord. More...
 

Public Attributes

snowflake application_id
 Application id (usually matches your bots id) More...
 
slashcommand_contextmenu_type type
 Context menu type, defaults to none. More...
 
std::string name
 Command name (1-32 chars) More...
 
std::string description
 Command description (1-100 chars) More...
 
std::vector< command_optionoptions
 Command options (parameters) More...
 
bool default_permission
 whether the command is enabled by default when the app is added to a guild More...
 
std::vector< command_permissionpermissions
 command permissions More...
 
snowflake version
 autoincrementing version identifier updated during substantial record changes More...
 
snowflake id
 Unique ID of object set by Discord. This value contains a timestamp, worker ID, internal server ID, and an incrementing value. Only the timestamp is relevant to us as useful metadata. More...
 

Detailed Description

Represents an application command, created by your bot either globally, or on a guild.

Constructor & Destructor Documentation

◆ slashcommand() [1/2]

dpp::slashcommand::slashcommand ( )

Construct a new slashcommand object.

◆ slashcommand() [2/2]

dpp::slashcommand::slashcommand ( const std::string &  _name,
const std::string &  _description,
const dpp::snowflake  _application_id 
)

Construct a new slashcommand object.

Parameters
_nameCommand name
_descriptionCommand description
_application_idApplication id (usually the bot's user id)

◆ ~slashcommand()

virtual dpp::slashcommand::~slashcommand ( )
virtual

Destroy the slashcommand object.

Member Function Documentation

◆ add_option()

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

Add an option (parameter)

Parameters
ooption (parameter) to add
Returns
slashcommand& reference to self for chaining of calls

◆ add_permission()

slashcommand & dpp::slashcommand::add_permission ( const command_permission p)

Adds a permission to the command.

Parameters
ppermission to add
Returns
slashcommand& reference to self for chaining of calls

◆ build_json()

std::string dpp::slashcommand::build_json ( bool  with_id = false) const

Build a json string for this object.

Parameters
with_idTrue if to include the ID in the JSON
Returns
std::string JSON string

◆ disable_default_permissions()

slashcommand & dpp::slashcommand::disable_default_permissions ( )

Disable default permissions, command will be unusable unless permissions are overridden with add_permission and dpp::guild_command_edit_permissions.

Returns
slashcommand& reference to self for chaining of calls

◆ fill_from_json()

slashcommand & dpp::slashcommand::fill_from_json ( nlohmann::json j)

Fill object properties from JSON.

Parameters
jJSON to fill from
Returns
slashcommand& Reference to self

◆ get_creation_time()

double dpp::managed::get_creation_time ( ) const
inherited

Get the creation time of this object according to Discord.

Returns
double creation time inferred from the snowflake ID. The minimum possible value is the first second of 2015.

◆ set_application_id()

slashcommand & dpp::slashcommand::set_application_id ( snowflake  i)

Set the application id of the command.

Parameters
iapplication id
Returns
slashcommand& reference to self for chaining of calls

◆ set_description()

slashcommand & dpp::slashcommand::set_description ( const std::string &  d)

Set the description of the command.

Parameters
ddescription
Note
The maximum length of a command description is 100 UTF-8 codepoints. If your command description is longer than this, it will be truncated.
Returns
slashcommand& reference to self for chaining of calls

◆ set_name()

slashcommand & dpp::slashcommand::set_name ( const std::string &  n)

Set the name of the command.

Parameters
nname of command
Note
The maximum length of a command name is 32 UTF-8 codepoints. If your command name is longer than this, it will be truncated.
Returns
slashcommand& reference to self for chaining of calls

◆ set_type()

slashcommand & dpp::slashcommand::set_type ( slashcommand_contextmenu_type  _type)

Set the type of the slash command (only for context menu entries)

Parameters
_typeType of context menu entry this command represents
Returns
slashcommand& reference to self for chaining of calls

Member Data Documentation

◆ application_id

snowflake dpp::slashcommand::application_id

Application id (usually matches your bots id)

◆ default_permission

bool dpp::slashcommand::default_permission

whether the command is enabled by default when the app is added to a guild

◆ description

std::string dpp::slashcommand::description

Command description (1-100 chars)

◆ id

snowflake dpp::managed::id
inherited

Unique ID of object set by Discord. This value contains a timestamp, worker ID, internal server ID, and an incrementing value. Only the timestamp is relevant to us as useful metadata.

◆ name

std::string dpp::slashcommand::name

Command name (1-32 chars)

◆ options

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

Command options (parameters)

◆ permissions

std::vector<command_permission> dpp::slashcommand::permissions

command permissions

◆ type

slashcommand_contextmenu_type dpp::slashcommand::type

Context menu type, defaults to none.

◆ version

snowflake dpp::slashcommand::version

autoincrementing version identifier updated during substantial record changes

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