pub struct CreateAutoModerationRule<'a> { /* private fields */ }
Expand description
Create an auto moderation rule within a guild.
Requires the MANAGE_GUILD
permission.
Examples
Create a rule that deletes messages that contain the word “darn”:
use twilight_http::Client;
use twilight_model::{guild::auto_moderation::AutoModerationEventType, id::Id};
let client = Client::new("my token".to_owned());
let guild_id = Id::new(1);
client
.create_auto_moderation_rule(guild_id, "no darns", AutoModerationEventType::MessageSend)
.action_block_message()
.enabled(true)
.with_keyword(&["darn"])
.await?;
Implementations§
source§impl<'a> CreateAutoModerationRule<'a>
impl<'a> CreateAutoModerationRule<'a>
sourcepub fn action_block_message(self) -> Self
pub fn action_block_message(self) -> Self
Append an action of type BlockMessage
.
sourcepub fn action_block_message_with_explanation(
self,
custom_message: &'a str
) -> Result<Self, ValidationError>
pub fn action_block_message_with_explanation( self, custom_message: &'a str ) -> Result<Self, ValidationError>
Append an action of type BlockMessage
with an explanation for blocking messages.
Errors
Returns a AutoModerationBlockActionCustomMessageLimit
if the custom message length
is invalid.
sourcepub fn action_send_alert_message(self, channel_id: Id<ChannelMarker>) -> Self
pub fn action_send_alert_message(self, channel_id: Id<ChannelMarker>) -> Self
Append an action of type SendAlertMessage
.
sourcepub fn action_timeout(self, duration_seconds: u32) -> Self
pub fn action_timeout(self, duration_seconds: u32) -> Self
Append an action of type Timeout
.
sourcepub const fn exempt_channels(
self,
exempt_channels: &'a [Id<ChannelMarker>]
) -> Self
pub const fn exempt_channels( self, exempt_channels: &'a [Id<ChannelMarker>] ) -> Self
Set the channels where the rule does not apply.
sourcepub const fn exempt_roles(self, exempt_roles: &'a [Id<RoleMarker>]) -> Self
pub const fn exempt_roles(self, exempt_roles: &'a [Id<RoleMarker>]) -> Self
Set the roles to which the rule does not apply.
sourcepub fn with_keyword(
self,
keyword_filter: &'a [&'a str]
) -> ResponseFuture<AutoModerationRule> ⓘ
pub fn with_keyword( self, keyword_filter: &'a [&'a str] ) -> ResponseFuture<AutoModerationRule> ⓘ
Create the request with the trigger type Keyword
, then execute it.
Rules of this type require the keyword_filter
field specified, and
this method ensures this. See Discord Docs/Keyword Matching Strategies
and Discord Docs/Trigger Metadata.
sourcepub fn with_spam(self) -> ResponseFuture<AutoModerationRule> ⓘ
pub fn with_spam(self) -> ResponseFuture<AutoModerationRule> ⓘ
Create the request with the trigger type Spam
, then execute it.
sourcepub fn with_keyword_preset(
self,
presets: &'a [AutoModerationKeywordPresetType],
allow_list: &'a [&'a str]
) -> ResponseFuture<AutoModerationRule> ⓘ
pub fn with_keyword_preset( self, presets: &'a [AutoModerationKeywordPresetType], allow_list: &'a [&'a str] ) -> ResponseFuture<AutoModerationRule> ⓘ
Create the request with the trigger type KeywordPreset
, then execute
it.
Rules of this type require the presets
and allow_list
fields
specified, and this method ensures this. See Discord Docs/Trigger
Metadata.
sourcepub fn with_mention_spam(
self,
mention_total_limit: u8
) -> Result<ResponseFuture<AutoModerationRule>, ValidationError>
pub fn with_mention_spam( self, mention_total_limit: u8 ) -> Result<ResponseFuture<AutoModerationRule>, ValidationError>
Create the request with the trigger type MentionSpam
, then execute
it.
Rules of this type requires the mention_total_limit
field specified,
and this method ensures this. See Discord Docs/Trigger Metadata.
Errors
Returns an error of type AutoModerationMetadataMentionTotalLimit
if
the limit is invalid.