use crate::{Context, Error}; async fn child2_check(_ctx: Context<'_>) -> Result { println!("Child2 check executed!"); Ok(true) } async fn child1_check(_ctx: Context<'_>) -> Result { println!("Child1 check executed!"); Ok(true) } async fn parent_check(_ctx: Context<'_>) -> Result { println!("Parent check executed!"); Ok(true) } #[poise::command(slash_command, prefix_command, check = "child2_check")] async fn child2(ctx: Context<'_>, _b: bool, _s: String, _i: u32) -> Result<(), Error> { ctx.say(ctx.invocation_string()).await?; Ok(()) } #[poise::command( slash_command, prefix_command, subcommands("child2"), check = "child1_check" )] async fn child1(_ctx: Context<'_>) -> Result<(), Error> { Ok(()) } #[poise::command( slash_command, prefix_command, subcommands("child1"), check = "parent_check" )] pub async fn parent_checks(_ctx: Context<'_>) -> Result<(), Error> { Ok(()) }