pub struct UpdateWebhookMessage<'a> { /* private fields */ }
Expand description
Update a message created by a webhook.
You can pass None
to any of the methods to remove the associated field.
Pass None
to content
to remove the content. You must ensure that the
message still contains at least one of attachments
, components
,
content
, or embeds
.
§Examples
Update a webhook’s message by setting the content to test <@3>
-
attempting to mention user ID 3 - while specifying that no entities can be
mentioned.
use twilight_http::Client;
use twilight_model::{channel::message::AllowedMentions, id::Id};
let client = Client::new("token".to_owned());
client
.update_webhook_message(Id::new(1), "token here", Id::new(2))
// By creating a default set of allowed mentions, no entity can be
// mentioned.
.allowed_mentions(Some(&AllowedMentions::default()))
.content(Some("test <@3>"))
.await?;
Implementations§
source§impl<'a> UpdateWebhookMessage<'a>
impl<'a> UpdateWebhookMessage<'a>
sourcepub fn allowed_mentions(
self,
allowed_mentions: Option<&'a AllowedMentions>,
) -> Self
pub fn allowed_mentions( self, allowed_mentions: Option<&'a AllowedMentions>, ) -> Self
Specify the AllowedMentions
for the message.
Unless otherwise called, the request will use the client’s default
allowed mentions. Set to None
to ignore this default.
sourcepub fn attachments(self, attachments: &'a [Attachment]) -> Self
pub fn attachments(self, attachments: &'a [Attachment]) -> Self
Attach multiple new files to the message.
This method clears previous calls.
§Errors
Returns an error of type AttachmentDescriptionTooLarge
if
the attachments’s description is too large.
Returns an error of type AttachmentFilename
if any filename is
invalid.
sourcepub fn components(self, components: Option<&'a [Component]>) -> Self
pub fn components(self, components: Option<&'a [Component]>) -> Self
Set the message’s list of Component
s.
Calling this method will clear previous calls.
Requires a webhook owned by the application.
§Editing
Pass None
to clear existing components.
§Errors
Refer to the errors section of
twilight_validate::component::component
for a list of errors that
may be returned as a result of validating each provided component.
sourcepub fn content(self, content: Option<&'a str>) -> Self
pub fn content(self, content: Option<&'a str>) -> Self
Set the message’s content.
The maximum length is 2000 UTF-16 characters.
§Editing
Pass None
to remove the message content. This is impossible if it
would leave the message empty of attachments
, content
, or embeds
.
§Errors
Returns an error of type ContentInvalid
if the content length is too
long.
sourcepub fn embeds(self, embeds: Option<&'a [Embed]>) -> Self
pub fn embeds(self, embeds: Option<&'a [Embed]>) -> Self
Set the message’s list of embeds.
Calling this method will clear previous calls.
The amount of embeds must not exceed EMBED_COUNT_LIMIT
. The total
character length of each embed must not exceed EMBED_TOTAL_LENGTH
characters. Additionally, the internal fields also have character
limits. See Discord Docs/Embed Limits.
§Editing
To keep all embeds, do not call this method. To modify one or more
embeds in the message, acquire them from the previous message, mutate
them in place, then pass that list to this method. To remove all embeds,
pass None
. This is impossible if it would leave the message empty of
attachments, content, or embeds.
§Examples
Create an embed and update the message with the new embed. The content of the original message is unaffected and only the embed(s) are modified.
use twilight_http::Client;
use twilight_model::id::Id;
use twilight_util::builder::embed::EmbedBuilder;
let client = Client::new("token".to_owned());
let webhook_id = Id::new(1);
let message_id = Id::new(2);
let embed = EmbedBuilder::new()
.description(
"Powerful, flexible, and scalable ecosystem of Rust \
libraries for the Discord API.",
)
.title("Twilight")
.url("https://twilight.rs")
.validate()?
.build();
client
.update_webhook_message(webhook_id, "token", message_id)
.embeds(Some(&[embed]))
.await?;
§Errors
Returns an error of type TooManyEmbeds
if there are too many embeds.
Otherwise, refer to the errors section of
twilight_validate::embed::embed
for a list of errors that may occur.
sourcepub fn keep_attachment_ids(
self,
attachment_ids: &'a [Id<AttachmentMarker>],
) -> Self
pub fn keep_attachment_ids( self, attachment_ids: &'a [Id<AttachmentMarker>], ) -> Self
Specify multiple Id<AttachmentMarker>
s already present in the target
message to keep.
If called, all unspecified attachments (except ones added with
attachments
) will be removed from the message. If not called, all
attachments will be kept.
sourcepub fn payload_json(self, payload_json: &'a [u8]) -> Self
pub fn payload_json(self, payload_json: &'a [u8]) -> Self
JSON encoded body of request fields.
If this method is called, all other methods are ignored, except for
attachments
. If uploading attachments, you must ensure that the
attachments
key corresponds properly to the provided list. See
Discord Docs/Create Message and ExecuteWebhook::payload_json
.
sourcepub fn thread_id(self, thread_id: Id<ChannelMarker>) -> Self
pub fn thread_id(self, thread_id: Id<ChannelMarker>) -> Self
Update in a thread belonging to the channel instead of the channel itself.