diff options
| author | Lakelezz <[email protected]> | 2018-10-11 02:19:18 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2018-10-11 02:19:18 +0200 |
| commit | e32f9b57d22c37a3238e83d086694304eb6c0cd5 (patch) | |
| tree | 12aaeab3632cc9a828d8b0672c8a662b5ee36116 /src/framework | |
| parent | Add `travis_wait` to extend build-time. (diff) | |
| download | serenity-e32f9b57d22c37a3238e83d086694304eb6c0cd5.tar.xz serenity-e32f9b57d22c37a3238e83d086694304eb6c0cd5.zip | |
Fix Default Command to inherit Group-Options (#412)
Diffstat (limited to 'src/framework')
| -rw-r--r-- | src/framework/standard/create_group.rs | 8 | ||||
| -rw-r--r-- | src/framework/standard/mod.rs | 15 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/framework/standard/create_group.rs b/src/framework/standard/create_group.rs index 3cd4047..037dc64 100644 --- a/src/framework/standard/create_group.rs +++ b/src/framework/standard/create_group.rs @@ -198,11 +198,11 @@ impl CreateGroup { /// Adds a command for a group that will be executed if no command-name /// has been passed. pub fn default_cmd<C: Command + 'static>(mut self, c: C) -> Self { - let cmd: Arc<Command> = Arc::new(c); - - self.0.default_command = Some(CommandOrAlias::Command(Arc::clone(&cmd))); + c.init(); - cmd.init(); + let cmd_with_group_options = self.build_command().cmd(c).finish(); + let cmd_finished = CommandOrAlias::Command(cmd_with_group_options); + self.0.default_command = Some(cmd_finished); self } diff --git a/src/framework/standard/mod.rs b/src/framework/standard/mod.rs index b0cebe7..099da4e 100644 --- a/src/framework/standard/mod.rs +++ b/src/framework/standard/mod.rs @@ -1160,6 +1160,21 @@ impl Framework for StandardFramework { Args::new(&orginal_round[longest_matching_prefix_len..], &self.configuration.delimiters) }; + if let Some(error) = self.should_fail( + &mut context, + &message, + &command.options(), + &group, + &mut args, + &to_check, + &built, + ) { + if let Some(ref handler) = self.dispatch_error_handler { + handler(context, message, error); + } + return; + } + threadpool.execute(move || { if let Some(before) = before { if !(before)(&mut context, &message, &args.full()) { |