#slash-command #discord #macro

ataraxy

Serenity 的 Discord 划分命令框架

2 个版本

0.1.1 2022 年 4 月 5 日
0.1.0 2022 年 3 月 31 日

#2080 in Rust 模式

MIT 许可证

50KB
1K SLoC

Ataraxy
Poise 启发的 Serenity Discord 划分命令框架


用法

Ataraxy 基于宏 #[command],它包装一个函数并将其转换为可用的命令。

/// Says "Hello world"
#[command]
async fn say_hello(
    ctx: Context,
    #[option(channel_type = "text", description = "Text channel to say hello to")]
    channel: ChannelId,
) {
    channel
        .send_message(&ctx.http(), |m| m.content("Hello, world!"))
        .await;
    ctx.reply_ephemeral("Message sent successfully.").await;
}

然后可以将命令和命令组注册到 ataraxy 的 Framework 中。

let framework = Framework::new().command(test_cmd);

Ataraxy 的 Framework 实现 Serenity 的 EventHandler 特性,因此您可以在 serenity Client 中使用它

let mut client = Client::builder(token)
    .event_handler(framework)
    .application_id(application_id)
    .await
    .expect("Error creating client");

if let Err(why) = client.start().await {
    println!("Client error: {:?}", why);
}

就这么简单!

依赖项

~21–34MB
~628K SLoC