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"], &["d(?:4|a)rn"], &["darn it"])
.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,
) -> Self
pub fn action_block_message_with_explanation( self, custom_message: &'a str, ) -> Self
Append an action of type BlockMessage
with an explanation for blocking messages.
§Errors
Returns a ValidationErrorType::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
.
§Errors
Returns ValidationErrorType::AutoModerationActionMetadataDurationSeconds
if the duration
is invalid.
sourcepub fn exempt_channels(self, exempt_channels: &'a [Id<ChannelMarker>]) -> Self
pub fn exempt_channels(self, exempt_channels: &'a [Id<ChannelMarker>]) -> Self
Set the channels where the rule does not apply. See Discord Docs/Trigger Metadata.
§Errors
Returns ValidationErrorType::AutoModerationExemptChannels
if the exempt_roles
field is invalid.
sourcepub fn exempt_roles(self, exempt_roles: &'a [Id<RoleMarker>]) -> Self
pub fn exempt_roles(self, exempt_roles: &'a [Id<RoleMarker>]) -> Self
Set the roles to which the rule does not apply. See Discord Docs/Trigger Metadata.
§Errors
Returns ValidationErrorType::AutoModerationExemptRoles
if the exempt_roles
field is invalid.
sourcepub fn with_keyword(
self,
keyword_filter: &'a [&'a str],
regex_patterns: &'a [&'a str],
allow_list: &'a [&'a str],
) -> ResponseFuture<AutoModerationRule> ⓘ
pub fn with_keyword( self, keyword_filter: &'a [&'a str], regex_patterns: &'a [&'a str], allow_list: &'a [&'a str], ) -> ResponseFuture<AutoModerationRule> ⓘ
Create the request with the trigger type Keyword
, then execute it.
Rules of this type require the keyword_filter
, regex_patterns
and
allow_list
fields specified, and this method ensures this.
See Discord Docs/Keyword Matching Strategies and
Discord Docs/Trigger Metadata for more information.
Only rust-flavored regex is currently supported by Discord.
§Errors
Returns ValidationErrorType::AutoModerationMetadataKeywordFilter
if the keyword_filter
field is invalid.
Returns ValidationErrorType::AutoModerationMetadataKeywordFilterItem
if a keyword_filter
item is invalid.
Returns ValidationErrorType::AutoModerationMetadataAllowList
if the allow_list
field is
invalid.
Returns ValidationErrorType::AutoModerationMetadataAllowListItem
if an allow_list
item
is invalid.
Returns ValidationErrorType::AutoModerationMetadataRegexPatterns
if the regex_patterns
field is invalid.
Returns ValidationErrorType::AutoModerationMetadataRegexPatternsItem
if a regex_patterns
item is invalid.
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/TriggerMetadata].
§Errors
Returns ValidationErrorType::AutoModerationMetadataPresetAllowList
if the allow_list
is
invalid.
Returns ValidationErrorType::AutoModerationMetadataPresetAllowListItem
if a allow_list
item is invalid.
sourcepub fn with_mention_spam(
self,
mention_total_limit: u8,
) -> ResponseFuture<AutoModerationRule> ⓘ
pub fn with_mention_spam( self, mention_total_limit: u8, ) -> ResponseFuture<AutoModerationRule> ⓘ
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 a ValidationErrorType::AutoModerationMetadataMentionTotalLimit
if mention_total_limit
is invalid.