diff --git a/src/handler/sern/sern.ts b/src/handler/sern/sern.ts index 49b5bfa..0b14eea 100644 --- a/src/handler/sern/sern.ts +++ b/src/handler/sern/sern.ts @@ -63,10 +63,10 @@ export namespace Sern { if(module.mod.type !== CommandType.SLASH) return "This is not a slash command"; const context = {message: None, interaction: Some(interaction)} - const parsedArgs = module.mod.parse?.("slash", context)(interaction.options ?? []) ?? Ok(""); + const parsedArgs = module.mod.parse?.(context)("slash", interaction.options ?? []) ?? Ok(""); if(parsedArgs.err) return parsedArgs.val; - module.mod.delegate(context, Ok(parsedArgs) ); - + const fn = await module.mod.delegate(context, Ok(parsedArgs)); + return fn?.val; } private async commandResult(module: Sern.Module | undefined, message: Message) : Promise { @@ -77,7 +77,7 @@ export namespace Sern { if (module.type === CommandType.SLASH) return `This may be a slash command and not a legacy command` const args = this.CtxHandler.fmtMsg.join(" "); const context = {message: Some(message), interaction: None} - const parsedArgs = module.parse?.("text", context)(args) ?? Ok(""); + const parsedArgs = module.parse?.(context)("text", args) ?? Ok(""); if(parsedArgs.err) return parsedArgs.val; let fn = await module.delegate(context, parsedArgs) return fn instanceof Object ? fn.val : undefined @@ -135,7 +135,7 @@ export namespace Sern { visibility : Visibility, type: CommandType, delegate : ( eventParams : Context , args: Ok ) => Awaitable | void> - parse? : (what : K, ctx: Context) => ( ( ...args : ParseType[K]) => Utils.ArgType ) + parse? : (ctx: Context) => ( (what: K, ...args : ParseType[K]) => Utils.ArgType ) }