#[non_exhaustive]pub struct Command {Show 15 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 default_permission: bool,
pub version: CommandVersionId,
}
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: 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>
Indicates whether the command is available in DMs with the app, only for globally-scoped commands. By default, commands are visible.
default_permission: bool
replaced by default_member_permissions
Whether the command is enabled by default when the application is added to a guild.
version: CommandVersionId
An autoincremented version identifier updated during substantial record changes.
Implementations
sourceimpl Command
impl Command
sourcepub async fn create_global_application_command<F>(
http: impl AsRef<Http>,
f: F
) -> Result<Command> where
F: FnOnce(&mut CreateApplicationCommand) -> &mut CreateApplicationCommand,
Available on crate feature http
only.
pub async fn create_global_application_command<F>(
http: impl AsRef<Http>,
f: F
) -> Result<Command> where
F: FnOnce(&mut CreateApplicationCommand) -> &mut CreateApplicationCommand,
http
only.Creates 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::model::application::command::Command;
use serenity::model::id::ApplicationId;
let _ = Command::create_global_application_command(&http, |command| {
command.name("ping").description("A simple ping command")
})
.await;
Create a command that echoes what is inserted:
use serenity::model::application::command::{Command, CommandOptionType};
use serenity::model::id::ApplicationId;
let _ = Command::create_global_application_command(&http, |command| {
command.name("echo").description("Makes the bot send a message").create_option(|option| {
option
.name("message")
.description("The message to send")
.kind(CommandOptionType::String)
.required(true)
})
})
.await;
Errors
May return an Error::Http
if the Command
is illformed,
such as if more than 10 choices
are set. See the API Docs for further details.
Can also return an Error::Json
if there is an error in deserializing
the response.
sourcepub async fn set_global_application_commands<F>(
http: impl AsRef<Http>,
f: F
) -> Result<Vec<Command>> where
F: FnOnce(&mut CreateApplicationCommands) -> &mut CreateApplicationCommands,
Available on crate feature http
only.
pub async fn set_global_application_commands<F>(
http: impl AsRef<Http>,
f: F
) -> Result<Vec<Command>> where
F: FnOnce(&mut CreateApplicationCommands) -> &mut CreateApplicationCommands,
http
only.Overrides all global application commands.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn edit_global_application_command<F>(
http: impl AsRef<Http>,
command_id: CommandId,
f: F
) -> Result<Command> where
F: FnOnce(&mut CreateApplicationCommand) -> &mut CreateApplicationCommand,
Available on crate feature http
only.
pub async fn edit_global_application_command<F>(
http: impl AsRef<Http>,
command_id: CommandId,
f: F
) -> Result<Command> where
F: FnOnce(&mut CreateApplicationCommand) -> &mut CreateApplicationCommand,
http
only.Edits a global command by its Id.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn get_global_application_commands(
http: impl AsRef<Http>
) -> Result<Vec<Command>>
Available on crate feature http
only.
pub async fn get_global_application_commands(
http: impl AsRef<Http>
) -> Result<Vec<Command>>
http
only.Gets all global commands.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn get_global_application_command(
http: impl AsRef<Http>,
command_id: CommandId
) -> Result<Command>
Available on crate feature http
only.
pub async fn get_global_application_command(
http: impl AsRef<Http>,
command_id: CommandId
) -> Result<Command>
http
only.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_application_command(
http: impl AsRef<Http>,
command_id: CommandId
) -> Result<()>
Available on crate feature http
only.
pub async fn delete_global_application_command(
http: impl AsRef<Http>,
command_id: CommandId
) -> Result<()>
http
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
sourceimpl<'de> Deserialize<'de> for Command
impl<'de> Deserialize<'de> for Command
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl RefUnwindSafe for Command
impl Send for Command
impl Sync for Command
impl Unpin for Command
impl UnwindSafe for Command
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more