10 个版本
0.3.1 | 2022年4月25日 |
---|---|
0.3.0 | 2022年4月10日 |
0.2.6 | 2021年9月25日 |
0.2.5 | 2021年8月21日 |
0.1.0 | 2021年4月22日 |
#3 in #menus
每月下载量 25
42KB
963 代码行(不含注释)
Serenity Rich Interaction
此软件包已重命名为 serenity-additions 以避免与 Discord 交互混淆。
此软件包提供了一些与 serenity 进行丰富交互的类型,例如菜单和临时(自删除)消息。
使用方法
您必须在 serenity 客户端构建器中注册该模块。
use serenity::client::Client;
use serenity_rich_interaction::RegisterRichInteractions;
#[tokio::main]
async fn get_client {
// stuff
let client = Client::builder("TOKEN").register_rich_interactions().await?;
// stuff
}
菜单
use serenity::builder::CreateMessage;
use serenity::client::Context;
use serenity::model::id::ChannelId;
use serenity_rich_interaction::menu::{MenuBuilder, Page};
use std::time::Duration;
use serenity_rich_interaction::Result;
pub async fn create_menu(
ctx: &Context,
channel_id: ChannelId,
) -> Result<()> {
let mut message1 = CreateMessage::default();
message1.content("Hello");
let mut message2 = CreateMessage::default();
message2.content("World");
MenuBuilder::new_paginator()
.timeout(Duration::from_secs(120))
.add_page(Page::new_static(message1))
.add_page(Page::new_static(message2))
.show_help()
.build(ctx, channel_id)
.await?;
Ok(())
}
临时消息
use serenity_rich_interaction::core::SHORT_TIMEOUT;
use serenity_rich_interaction::ephemeral_message::EphemeralMessage;
use serenity_rich_interaction::Result;
use serenity::client::Context;
use serenity::model::id::ChannelId;
pub async fn create_ephemeral_message(ctx: &Context, channel_id: ChannelId) -> Result<()> {
EphemeralMessage::create(&ctx.http, channel_id, SHORT_TIMEOUT, |m| {
m.content("Hello World")
}).await?;
Ok(())
}
许可证
Apache-2.0
依赖项
~9–25MB
~410K SLoC