#[non_exhaustive]pub struct Command {Show 18 fields
pub id: CommandId,
pub kind: CommandType,
pub application_id: ApplicationId,
pub guild_id: Option<GuildId>,
pub name: String,
pub name_localized: Option<String>,
pub name_localizations: Option<HashMap<String, String>>,
pub description: String,
pub description_localized: Option<String>,
pub description_localizations: Option<HashMap<String, String>>,
pub options: Vec<CommandOption>,
pub default_member_permissions: Option<Permissions>,
pub dm_permission: Option<bool>,
pub nsfw: bool,
pub integration_types: Vec<InstallationContext>,
pub contexts: Option<Vec<InteractionContext>>,
pub version: CommandVersionId,
pub handler: Option<EntryPointHandlerType>,
}Expand description
The base command model that belongs to an application.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.id: CommandIdThe command Id.
kind: CommandTypeThe application command kind.
application_id: ApplicationIdThe parent application Id.
guild_id: Option<GuildId>The command guild Id, if it is a guild command.
Note: It may only be present if it is received through the gateway.
name: StringThe command name.
name_localized: Option<String>The localized command name of the selected locale.
If the name is localized, either this field or Self::name_localizations is set,
depending on which endpoint this data was retrieved from
(source).
name_localizations: Option<HashMap<String, String>>All localized command names.
If the name is localized, either this field or Self::name_localized is set, depending
on which endpoint this data was retrieved from
(source).
description: StringThe command description.
description_localized: Option<String>The localized command description of the selected locale.
If the description is localized, either this field or Self::description_localizations
is set, depending on which endpoint this data was retrieved from
(source).
description_localizations: Option<HashMap<String, String>>All localized command descriptions.
If the description is localized, either this field or Self::description_localized is
set, depending on which endpoint this data was retrieved from
(source).
options: Vec<CommandOption>The parameters for the command.
default_member_permissions: Option<Permissions>The default permissions required to execute the command.
dm_permission: Option<bool>Indicates whether the command is available in DMs with the app, only for globally-scoped commands. By default, commands are visible.
nsfw: boolIndicates whether the command is age-restricted, defaults to false.
integration_types: Vec<InstallationContext>Installation context(s) where the command is available, only for globally-scoped commands.
Defaults to InstallationContext::Guild and InstallationContext::User.
contexts: Option<Vec<InteractionContext>>Interaction context(s) where the command can be used, only for globally-scoped commands.
By default, all interaction context types are included.
version: CommandVersionIdAn autoincremented version identifier updated during substantial record changes.
handler: Option<EntryPointHandlerType>Only present for commands of type PrimaryEntryPoint.
Implementations§
Source§impl Command
impl Command
Sourcepub async fn create_global_command(
cache_http: impl CacheHttp,
builder: CreateCommand,
) -> Result<Command>
pub async fn create_global_command( cache_http: impl CacheHttp, builder: CreateCommand, ) -> Result<Command>
Create a global Command, overriding an existing one with the same name if it exists.
When a created Command is used, the InteractionCreate event will be emitted.
Note: Global commands may take up to an hour to be updated in the user slash commands list. If an outdated command data is sent by a user, discord will consider it as an error and then will instantly update that command.
As such, it is recommended that guild application commands be used for testing purposes.
§Examples
Create a simple ping command:
use serenity::builder::CreateCommand;
use serenity::model::application::Command;
use serenity::model::id::ApplicationId;
let builder = CreateCommand::new("ping").description("A simple ping command");
let _ = Command::create_global_command(&http, builder).await;Create a command that echoes what is inserted:
use serenity::builder::{CreateCommand, CreateCommandOption as CreateOption};
use serenity::model::application::{Command, CommandOptionType};
use serenity::model::id::ApplicationId;
let builder =
CreateCommand::new("echo").description("Makes the bot send a message").add_option(
CreateOption::new(CommandOptionType::String, "message", "The message to send")
.required(true),
);
let _ = Command::create_global_command(&http, builder).await;§Errors
See CreateCommand::execute for a list of possible errors.
Sourcepub async fn set_global_commands(
http: impl AsRef<Http>,
commands: Vec<CreateCommand>,
) -> Result<Vec<Command>>
pub async fn set_global_commands( http: impl AsRef<Http>, commands: Vec<CreateCommand>, ) -> Result<Vec<Command>>
Override all global application commands.
§Errors
Returns the same errors as Self::create_global_command.
Sourcepub async fn edit_global_command(
cache_http: impl CacheHttp,
command_id: CommandId,
builder: CreateCommand,
) -> Result<Command>
pub async fn edit_global_command( cache_http: impl CacheHttp, command_id: CommandId, builder: CreateCommand, ) -> Result<Command>
Edit a global command, given its Id.
§Errors
See CreateCommand::execute for a list of possible errors.
Sourcepub async fn get_global_commands(http: impl AsRef<Http>) -> Result<Vec<Command>>
pub async fn get_global_commands(http: impl AsRef<Http>) -> Result<Vec<Command>>
Gets all global commands.
§Errors
If there is an error, it will be either Error::Http or Error::Json.
Sourcepub async fn get_global_commands_with_localizations(
http: impl AsRef<Http>,
) -> Result<Vec<Command>>
pub async fn get_global_commands_with_localizations( http: impl AsRef<Http>, ) -> Result<Vec<Command>>
Gets all global commands with localizations.
§Errors
If there is an error, it will be either Error::Http or Error::Json.
Sourcepub async fn get_global_command(
http: impl AsRef<Http>,
command_id: CommandId,
) -> Result<Command>
pub async fn get_global_command( http: impl AsRef<Http>, command_id: CommandId, ) -> Result<Command>
Gets a global command by its Id.
§Errors
If there is an error, it will be either Error::Http or Error::Json.
Sourcepub async fn delete_global_command(
http: impl AsRef<Http>,
command_id: CommandId,
) -> Result<()>
pub async fn delete_global_command( http: impl AsRef<Http>, command_id: CommandId, ) -> Result<()>
Deletes a global command by its Id.
§Errors
If there is an error, it will be either Error::Http or Error::Json.