diff options
| author | Lake Lezz <[email protected]> | 2018-11-16 02:27:06 +0100 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2018-11-16 20:57:13 +0100 |
| commit | 653e596527020954738104558a8596ae0c378279 (patch) | |
| tree | daedfe7ec9e41f98772b8ea5d8c9d5a4ae77c86a /src | |
| parent | Merge branch 'current' into v0.6.x (diff) | |
| download | serenity-653e596527020954738104558a8596ae0c378279.tar.xz serenity-653e596527020954738104558a8596ae0c378279.zip | |
Add Slow Mode Rate (#439)
Fixes #402
Diffstat (limited to 'src')
| -rw-r--r-- | src/builder/edit_channel.rs | 10 | ||||
| -rw-r--r-- | src/cache/mod.rs | 1 | ||||
| -rw-r--r-- | src/model/channel/guild_channel.rs | 3 | ||||
| -rw-r--r-- | src/model/channel/mod.rs | 1 | ||||
| -rw-r--r-- | src/model/misc.rs | 1 | ||||
| -rw-r--r-- | src/utils/mod.rs | 1 |
6 files changed, 17 insertions, 0 deletions
diff --git a/src/builder/edit_channel.rs b/src/builder/edit_channel.rs index cd0b137..4728abb 100644 --- a/src/builder/edit_channel.rs +++ b/src/builder/edit_channel.rs @@ -81,4 +81,14 @@ impl EditChannel { None => Value::Null }); } + + /// The seconds a user has to wait before sending another message. + /// + /// **Info**: Only values from 0 to 120 are valid. + #[inline] + pub fn slow_mode_rate(mut self, seconds: u64) -> Self { + self.0.insert("rate_limit_per_user", Value::Number(Number::from(seconds))); + + self + } } diff --git a/src/cache/mod.rs b/src/cache/mod.rs index f02d1c6..f3f9fe4 100644 --- a/src/cache/mod.rs +++ b/src/cache/mod.rs @@ -894,6 +894,7 @@ mod test { topic: None, user_limit: None, nsfw: false, + slow_mode_rate: 0, }; // Add a channel delete event to the cache, the cached messages for that diff --git a/src/model/channel/guild_channel.rs b/src/model/channel/guild_channel.rs index 02d1c1f..046ca7c 100644 --- a/src/model/channel/guild_channel.rs +++ b/src/model/channel/guild_channel.rs @@ -87,6 +87,9 @@ pub struct GuildChannel { // default to `false`. #[serde(default)] pub nsfw: bool, + /// A rate limit that applies per user and excludes bots. + #[serde(default, rename = "rate_limit_per_user")] + pub slow_mode_rate: u64, } #[cfg(feature = "model")] diff --git a/src/model/channel/mod.rs b/src/model/channel/mod.rs index bc4ea75..5b2b16e 100644 --- a/src/model/channel/mod.rs +++ b/src/model/channel/mod.rs @@ -743,6 +743,7 @@ mod test { topic: None, user_limit: None, nsfw: false, + slow_mode_rate: 0, } } diff --git a/src/model/misc.rs b/src/model/misc.rs index 9c09a9b..87c3c44 100644 --- a/src/model/misc.rs +++ b/src/model/misc.rs @@ -330,6 +330,7 @@ mod test { topic: None, user_limit: None, nsfw: false, + slow_mode_rate: 0, }))); let emoji = Emoji { animated: false, diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 0696aad..b2b4323 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -996,6 +996,7 @@ mod test { topic: None, user_limit: None, nsfw: false, + slow_mode_rate: 0, }; let cache = RwLock::new(Cache::default()); |