aboutsummaryrefslogtreecommitdiff
path: root/src/framework
diff options
context:
space:
mode:
authorLakelezz <[email protected]>2018-10-11 02:19:18 +0200
committerGitHub <[email protected]>2018-10-11 02:19:18 +0200
commite32f9b57d22c37a3238e83d086694304eb6c0cd5 (patch)
tree12aaeab3632cc9a828d8b0672c8a662b5ee36116 /src/framework
parentAdd `travis_wait` to extend build-time. (diff)
downloadserenity-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.rs8
-rw-r--r--src/framework/standard/mod.rs15
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()) {