Rule
extends Part
in package
Auto Moderation is a feature which allows each guild to set up rules that trigger based on some criteria. For example, a rule can trigger whenever a message contains a specific keyword.
Rules can be configured to automatically execute actions whenever they trigger. For example, if a user tries to send a message which contains a certain keyword, a rule can trigger and block the message before it is sent.
Tags
Table of Contents
- EVENT_TYPE_MESSAGE_SEND = 1
- KEYWORD_PRESET_TYPE_PROFANITY = 1
- KEYWORD_PRESET_TYPE_SEXUAL_CONTENT = 2
- KEYWORD_PRESET_TYPE_SLURS = 3
- TRIGGER_TYPE_KEYWORD = 1
- TRIGGER_TYPE_KEYWORD_PRESET = 4
- TRIGGER_TYPE_MENTION_SPAM = 5
- TRIGGER_TYPE_SPAM = 3
- $actions : Collection|array<string|int, Action>
- $created : bool
- Is the part already created in the Discord servers?
- $creator : User|null
- $creator_id : string
- $enabled : bool
- $event_type : int
- $exempt_channels : Collection|array<string|int, Channels>
- $exempt_roles : Collection|array<string|int, Roles>
- $guild : Guild|null
- $guild_id : string
- $id : string
- $name : string
- $scriptData : mixed
- Custom script data.
- $trigger_metadata : object
- $trigger_type : int
- $attributes : array<string|int, mixed>
- The parts attributes.
- $discord : Discord
- The Discord client.
- $factory : Factory
- The factory.
- $fillable : array<string|int, mixed>
- The parts fillable attributes.
- $hidden : array<string|int, mixed>
- Attributes that are hidden from debug info.
- $http : Http
- The HTTP client.
- $repositories : array<string|int, mixed>
- An array of repositories that can exist in a part.
- $repositories_cache : array<string|int, mixed>
- An array of repositories.
- $visible : array<string|int, mixed>
- Attributes which are visible from debug info.
- __construct() : mixed
- Create a new part instance.
- __debugInfo() : array<string|int, mixed>
- Handles debug calls from var_dump and similar functions.
- __get() : mixed
- Handles dynamic get calls onto the part.
- __serialize() : array<string|int, mixed>
- __set() : void
- Handles dynamic set calls onto the part.
- __toString() : string
- Converts the part to a string.
- __unserialize() : void
- fetch() : ExtendedPromiseInterface<string|int, self>
- Fetches any missing information about the part from Discord's servers.
- fill() : void
- Fills the parts attributes from an array.
- getCreatableAttributes() : array<string|int, mixed>
- Returns the attributes needed to create.
- getPublicAttributes() : array<string|int, mixed>
- Returns an array of public attributes.
- getRawAttributes() : array<string|int, mixed>
- Returns an array of raw attributes.
- getRepositoryAttributes() : array<string|int, mixed>
- Gets the attributes to pass to repositories.
- getUpdatableAttributes() : array<string|int, mixed>
- Returns the updatable attributes.
- isPartial() : bool
- Whether the part is considered partial i.e. missing information which can be fetched from Discord.
- jsonSerialize() : array<string|int, mixed>
- Provides data when the part is encoded into JSON. Used for JsonSerializable.
- offsetExists() : bool
- Checks if an attribute exists via key. Used for ArrayAccess.
- offsetGet() : mixed
- Gets an attribute via key. Used for ArrayAccess.
- offsetSet() : void
- Sets an attribute via key. Used for ArrayAccess.
- offsetUnset() : void
- Unsets an attribute via key. Used for ArrayAccess.
- serialize() : string|null
- Serializes the data. Used for Serializable.
- unserialize() : void
- Unserializes some data and stores it. Used for Serializable.
- afterConstruct() : void
- Called after the part has been constructed.
- getActionsAttribute() : Collection|array<string|int, Action>
- Returns the actions attribute.
- getCreatorAttribute() : User|null
- Returns the user attribute.
- getExemptChannelsAttribute() : Collection<string|int, ?\Discord\Parts\Guild\AutoModeration\Channel>
- Returns the exempt channels attribute.
- getExemptRolesAttribute() : Collection<string|int, ?\Discord\Parts\Guild\AutoModeration\Role>
- Returns the exempt roles attribute.
- getGuildAttribute() : Guild|null
- Returns the guild attribute.
- checkForMutator() : string|false
- Checks if there is a mutator present.
- getAttribute() : mixed
- Gets an attribute on the part.
- setAttribute() : void
- Sets an attribute on the part.
- studly() : string
- Converts a string to studlyCase.
Constants
EVENT_TYPE_MESSAGE_SEND
public
mixed
EVENT_TYPE_MESSAGE_SEND
= 1
KEYWORD_PRESET_TYPE_PROFANITY
public
mixed
KEYWORD_PRESET_TYPE_PROFANITY
= 1
KEYWORD_PRESET_TYPE_SEXUAL_CONTENT
public
mixed
KEYWORD_PRESET_TYPE_SEXUAL_CONTENT
= 2
KEYWORD_PRESET_TYPE_SLURS
public
mixed
KEYWORD_PRESET_TYPE_SLURS
= 3
TRIGGER_TYPE_KEYWORD
public
mixed
TRIGGER_TYPE_KEYWORD
= 1
TRIGGER_TYPE_KEYWORD_PRESET
public
mixed
TRIGGER_TYPE_KEYWORD_PRESET
= 4
TRIGGER_TYPE_MENTION_SPAM
public
mixed
TRIGGER_TYPE_MENTION_SPAM
= 5
TRIGGER_TYPE_SPAM
public
mixed
TRIGGER_TYPE_SPAM
= 3
Properties
$actions
public
Collection|array<string|int, Action>
$actions
The actions which will execute when the rule is triggered.
$created
Is the part already created in the Discord servers?
public
bool
$created
= false
Whether the part has been created.
$creator read-only
public
User|null
$creator
The user which first created this rule.
$creator_id
public
string
$creator_id
The id of the user which first created this rule.
$enabled
public
bool
$enabled
Whether the rule is enabled.
$event_type
public
int
$event_type
The rule event type.
$exempt_channels
public
Collection|array<string|int, Channels>
$exempt_channels
The channel ids that should not be affected by the rule (Maximum of 50).
$exempt_roles
public
Collection|array<string|int, Roles>
$exempt_roles
The role ids that should not be affected by the rule (Maximum of 20).
$guild read-only
public
Guild|null
$guild
The guild which this rule belongs to.
$guild_id
public
string
$guild_id
The id of the guild which this rule belongs to.
$id
public
string
$id
The id of this rule.
$name
public
string
$name
The rule name.
$scriptData
Custom script data.
public
mixed
$scriptData
Used for storing custom information, used by end products.
Tags
$trigger_metadata
public
object
$trigger_metadata
The rule trigger metadata (may contain keyword_filter
, regex_patterns
, presets
, allow_list
, mention_total_limit
and mention_raid_protection_enabled
).
$trigger_type
public
int
$trigger_type
The rule trigger type.
$attributes
The parts attributes.
protected
array<string|int, mixed>
$attributes
= []
The parts attributes and content.
$discord
The Discord client.
protected
Discord
$discord
Client.
$factory
The factory.
protected
Factory
$factory
Factory.
$fillable
The parts fillable attributes.
protected
array<string|int, mixed>
$fillable
= ['id', 'guild_id', 'name', 'creator_id', 'event_type', 'trigger_type', 'trigger_metadata', 'actions', 'enabled', 'exempt_roles', 'exempt_channels']
The array of attributes that can be mass-assigned.
$hidden
Attributes that are hidden from debug info.
protected
array<string|int, mixed>
$hidden
= []
Attributes that are hidden from public.
$http
The HTTP client.
protected
Http
$http
Client.
$repositories
An array of repositories that can exist in a part.
protected
array<string|int, mixed>
$repositories
= []
Repositories.
$repositories_cache
An array of repositories.
protected
array<string|int, mixed>
$repositories_cache
= []
$visible
Attributes which are visible from debug info.
protected
array<string|int, mixed>
$visible
= []
Methods
__construct()
Create a new part instance.
public
__construct(Discord $discord[, array<string|int, mixed> $attributes = [] ][, bool $created = false ]) : mixed
Parameters
- $discord : Discord
-
The Discord client.
- $attributes : array<string|int, mixed> = []
-
An array of attributes to build the part.
- $created : bool = false
-
Whether the part has already been created.
Return values
mixed —__debugInfo()
Handles debug calls from var_dump and similar functions.
public
__debugInfo() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —An array of public attributes.
__get()
Handles dynamic get calls onto the part.
public
__get(string $key) : mixed
Parameters
- $key : string
-
The attributes key.
Tags
Return values
mixed —The value of the attribute.
__serialize()
public
__serialize() : array<string|int, mixed>
Return values
array<string|int, mixed> —__set()
Handles dynamic set calls onto the part.
public
__set(string $key, mixed $value) : void
Parameters
- $key : string
-
The attributes key.
- $value : mixed
-
The attributes value.
Tags
Return values
void —__toString()
Converts the part to a string.
public
__toString() : string
Tags
Return values
string —A JSON string of attributes.
__unserialize()
public
__unserialize(array<string|int, mixed> $data) : void
Parameters
- $data : array<string|int, mixed>
Return values
void —fetch()
Fetches any missing information about the part from Discord's servers.
public
fetch() : ExtendedPromiseInterface<string|int, self>
Tags
Return values
ExtendedPromiseInterface<string|int, self> —fill()
Fills the parts attributes from an array.
public
fill(array<string|int, mixed> $attributes) : void
Parameters
- $attributes : array<string|int, mixed>
-
An array of attributes to build the part.
Return values
void —getCreatableAttributes()
Returns the attributes needed to create.
public
getCreatableAttributes() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getPublicAttributes()
Returns an array of public attributes.
public
getPublicAttributes() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —An array of public attributes.
getRawAttributes()
Returns an array of raw attributes.
public
getRawAttributes() : array<string|int, mixed>
Return values
array<string|int, mixed> —Raw attributes.
getRepositoryAttributes()
Gets the attributes to pass to repositories.
public
getRepositoryAttributes() : array<string|int, mixed>
Return values
array<string|int, mixed> —Attributes.
getUpdatableAttributes()
Returns the updatable attributes.
public
getUpdatableAttributes() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —isPartial()
Whether the part is considered partial i.e. missing information which can be fetched from Discord.
public
isPartial() : bool
Return values
bool —jsonSerialize()
Provides data when the part is encoded into JSON. Used for JsonSerializable.
public
jsonSerialize() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —An array of public attributes.
offsetExists()
Checks if an attribute exists via key. Used for ArrayAccess.
public
offsetExists(string $key) : bool
Parameters
- $key : string
-
The attribute key.
Return values
bool —Whether the offset exists.
offsetGet()
Gets an attribute via key. Used for ArrayAccess.
public
offsetGet(string $key) : mixed
Parameters
- $key : string
-
The attribute key.
Tags
Return values
mixed —offsetSet()
Sets an attribute via key. Used for ArrayAccess.
public
offsetSet(string $key, mixed $value) : void
Parameters
- $key : string
-
The attribute key.
- $value : mixed
-
The attribute value.
Tags
Return values
void —offsetUnset()
Unsets an attribute via key. Used for ArrayAccess.
public
offsetUnset(string $key) : void
Parameters
- $key : string
-
The attribute key.
Return values
void —serialize()
Serializes the data. Used for Serializable.
public
serialize() : string|null
Return values
string|null —A string of serialized data.
unserialize()
Unserializes some data and stores it. Used for Serializable.
public
unserialize(string $data) : void
Parameters
- $data : string
-
Some serialized data.
Tags
Return values
void —afterConstruct()
Called after the part has been constructed.
protected
afterConstruct() : void
Return values
void —getActionsAttribute()
Returns the actions attribute.
protected
getActionsAttribute() : Collection|array<string|int, Action>
Return values
Collection|array<string|int, Action> —A collection of actions.
getCreatorAttribute()
Returns the user attribute.
protected
getCreatorAttribute() : User|null
Return values
User|null —The user which first created this rule.
getExemptChannelsAttribute()
Returns the exempt channels attribute.
protected
getExemptChannelsAttribute() : Collection<string|int, ?\Discord\Parts\Guild\AutoModeration\Channel>
Return values
Collection<string|int, ?\Discord\Parts\Guild\AutoModeration\Channel> —A collection of channels exempt from the rule.
getExemptRolesAttribute()
Returns the exempt roles attribute.
protected
getExemptRolesAttribute() : Collection<string|int, ?\Discord\Parts\Guild\AutoModeration\Role>
Return values
Collection<string|int, ?\Discord\Parts\Guild\AutoModeration\Role> —A collection of roles exempt from the rule.
getGuildAttribute()
Returns the guild attribute.
protected
getGuildAttribute() : Guild|null
Return values
Guild|null —The guild the rule belongs to.
checkForMutator()
Checks if there is a mutator present.
private
checkForMutator(string $key, string $type) : string|false
Parameters
- $key : string
-
The attribute name to check.
- $type : string
-
Either get or set.
Return values
string|false —Either a string if it is callable or false.
getAttribute()
Gets an attribute on the part.
private
getAttribute(string $key) : mixed
Parameters
- $key : string
-
The key to the attribute.
Tags
Return values
mixed —Either the attribute if it exists or void.
setAttribute()
Sets an attribute on the part.
private
setAttribute(string $key, mixed $value) : void
Parameters
- $key : string
-
The key to the attribute.
- $value : mixed
-
The value of the attribute.
Return values
void —studly()
Converts a string to studlyCase.
private
static studly(string $string) : string
This is a port of updated Laravel's implementation, a non-regex with static cache. The Discord\studly() is kept due to unintended bug and we do not want to introduce BC by replacing it. This method is private static as we may move it outside this class in future.
Parameters
- $string : string
-
The string to convert.