serenity::model::application

Struct Command

Source
#[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.

Discord docs.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§id: CommandId

The command Id.

§kind: CommandType

The application command kind.

§application_id: ApplicationId

The 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: String

The 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: String

The 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>
👎Deprecated: Use Command::contexts

Indicates whether the command is available in DMs with the app, only for globally-scoped commands. By default, commands are visible.

§nsfw: bool

Indicates 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: CommandVersionId

An autoincremented version identifier updated during substantial record changes.

§handler: Option<EntryPointHandlerType>

Only present for commands of type PrimaryEntryPoint.

Implementations§

Source§

impl Command

Source

pub async fn create_global_command( cache_http: impl CacheHttp, builder: CreateCommand, ) -> Result<Command>

Available on crate feature model only.

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.

Source

pub async fn set_global_commands( http: impl AsRef<Http>, commands: Vec<CreateCommand>, ) -> Result<Vec<Command>>

Available on crate feature model only.

Override all global application commands.

§Errors

Returns the same errors as Self::create_global_command.

Source

pub async fn edit_global_command( cache_http: impl CacheHttp, command_id: CommandId, builder: CreateCommand, ) -> Result<Command>

Available on crate feature model only.

Edit a global command, given its Id.

§Errors

See CreateCommand::execute for a list of possible errors.

Source

pub async fn get_global_commands(http: impl AsRef<Http>) -> Result<Vec<Command>>

Available on crate feature model only.

Gets all global commands.

§Errors

If there is an error, it will be either Error::Http or Error::Json.

Source

pub async fn get_global_commands_with_localizations( http: impl AsRef<Http>, ) -> Result<Vec<Command>>

Available on crate feature model only.

Gets all global commands with localizations.

§Errors

If there is an error, it will be either Error::Http or Error::Json.

Source

pub async fn get_global_command( http: impl AsRef<Http>, command_id: CommandId, ) -> Result<Command>

Available on crate feature model only.

Gets a global command by its Id.

§Errors

If there is an error, it will be either Error::Http or Error::Json.

Source

pub async fn delete_global_command( http: impl AsRef<Http>, command_id: CommandId, ) -> Result<()>

Available on crate feature model only.

Deletes a global command by its Id.

§Errors

If there is an error, it will be either Error::Http or Error::Json.

Trait Implementations§

Source§

impl Clone for Command

Source§

fn clone(&self) -> Command

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Command

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Command

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Command

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneDebuggableStorage for T
where T: DebuggableStorage + Clone,

§

fn clone_storage(&self) -> Box<dyn CloneDebuggableStorage>

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> CloneableStorage for T
where T: Any + Send + Sync + Clone,

§

fn clone_storage(&self) -> Box<dyn CloneableStorage>

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> DebuggableStorage for T
where T: Any + Send + Sync + Debug,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T