2 个版本
0.1.1 | 2022 年 4 月 5 日 |
---|---|
0.1.0 | 2022 年 3 月 31 日 |
#2080 in Rust 模式
50KB
1K SLoC
由 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