diff --git a/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionHandler.java b/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionHandler.java index 47cb71b9..6ff18561 100644 --- a/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionHandler.java +++ b/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionHandler.java @@ -54,8 +54,8 @@ public interface CommandExecutionHandler { * @return future that completes when the command has finished execution * @since 1.6.0 */ - default CompletableFuture<@Nullable Object> executeFuture(@NonNull CommandContext commandContext) { - final CompletableFuture future = new CompletableFuture<>(); + default CompletableFuture<@Nullable Void> executeFuture(@NonNull CommandContext commandContext) { + final CompletableFuture future = new CompletableFuture<>(); try { this.execute(commandContext); /* The command executed successfully */ @@ -97,7 +97,7 @@ public interface CommandExecutionHandler { } @Override - CompletableFuture<@Nullable Object> executeFuture( + CompletableFuture<@Nullable Void> executeFuture( @NonNull CommandContext commandContext ); diff --git a/cloud-kotlin-extensions/src/main/kotlin/cloud/commandframework/kotlin/coroutines/KotlinAnnotatedMethods.kt b/cloud-kotlin-extensions/src/main/kotlin/cloud/commandframework/kotlin/coroutines/KotlinAnnotatedMethods.kt index 5fa1acfa..46e86e85 100644 --- a/cloud-kotlin-extensions/src/main/kotlin/cloud/commandframework/kotlin/coroutines/KotlinAnnotatedMethods.kt +++ b/cloud-kotlin-extensions/src/main/kotlin/cloud/commandframework/kotlin/coroutines/KotlinAnnotatedMethods.kt @@ -68,13 +68,14 @@ private class KotlinMethodCommandExecutionHandler( context: CommandMethodContext ) : MethodCommandExecutionHandler(context) { - override fun executeFuture(commandContext: CommandContext): CompletableFuture { + override fun executeFuture(commandContext: CommandContext): CompletableFuture { val instance = context().instance() val params = createParameterValues(commandContext, commandContext.flags(), false) // We need to propagate exceptions to the caller. return coroutineScope - .async(this@KotlinMethodCommandExecutionHandler.coroutineContext) { + .async(this@KotlinMethodCommandExecutionHandler.coroutineContext) { context().method().kotlinFunction?.callSuspend(instance, *params.toTypedArray()) + null } .asCompletableFuture() }