5 个版本
0.3.4 | 2022 年 10 月 15 日 |
---|---|
0.3.3 | 2022 年 10 月 15 日 |
0.3.2 | 2022 年 6 月 7 日 |
0.3.1 | 2022 年 4 月 25 日 |
0.3.0 | 2022 年 4 月 25 日 |
5 在 #menus
每月 38 次下载
43KB
1K SLoC
Serenity Additions
此包提供了一些类型,用于与 serenity 进行丰富的交互,例如菜单和短暂(自删除)消息。
使用方法
您必须在 serenity 客户端构建器中注册此模块。
use serenity::client::Client;
use serenity_additions::RegisterRichInteractions;
use serenity::prelude::GatewayIntents;
let client = Client::builder("TOKEN", GatewayIntends::default()).register_serenity_additions()
菜单
use serenity::builder::CreateMessage;
use serenity::client::Context;
use serenity::model::id::ChannelId;
use serenity_additions::menu::{MenuBuilder, Page};
use std::time::Duration;
use serenity_additions::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_additions::core::SHORT_TIMEOUT;
use serenity_additions::ephemeral_message::EphemeralMessage;
use serenity_additions::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
~413K SLoC