aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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()) {