diff options
Diffstat (limited to 'src/ext/framework')
| -rw-r--r-- | src/ext/framework/configuration.rs | 18 | ||||
| -rw-r--r-- | src/ext/framework/mod.rs | 6 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/ext/framework/configuration.rs b/src/ext/framework/configuration.rs index 404b248..d4ebb3e 100644 --- a/src/ext/framework/configuration.rs +++ b/src/ext/framework/configuration.rs @@ -81,6 +81,8 @@ pub struct Configuration { pub disabled_commands: HashSet<String>, #[doc(hidden)] pub allow_dm: bool, + #[doc(hidden)] + pub ignore_webhooks: bool, } impl Configuration { @@ -121,6 +123,21 @@ impl Configuration { self } + /// If set to false, bot will ignore any private messages. + pub fn allow_dm(mut self, allow_dm: bool) -> Self { + self.allow_dm = allow_dm; + + self + } + + /// If set to true, bot will ignore all commands called by webhooks. + /// True by default. + pub fn ignore_webhooks(mut self, ignore_webhooks: bool) -> Self { + self.ignore_webhooks = ignore_webhooks; + + self + } + /// HashSet of user Ids whose commands will be ignored. /// Guilds owned by user Ids will also be ignored. pub fn blocked_users(mut self, users: HashSet<UserId>) -> Self { @@ -340,6 +357,7 @@ impl Default for Configuration { blocked_guilds: HashSet::default(), disabled_commands: HashSet::default(), allow_dm: true, + ignore_webhooks: true, } } } diff --git a/src/ext/framework/mod.rs b/src/ext/framework/mod.rs index fb8c05c..777736f 100644 --- a/src/ext/framework/mod.rs +++ b/src/ext/framework/mod.rs @@ -341,7 +341,11 @@ impl Framework { return; } - if !self.configuration.allow_dm { + if self.configuration.ignore_webhooks && message.is_webhook() { + return; + } + + if !self.configuration.allow_dm && message.is_private() { if let Some(ref message) = self.configuration.no_dm_message { let _ = context.say(message); } |