#serenity #discord #messages #menus #client-builder #framework #self

serenity-additions

为 serenity discord 框架提供菜单和自删除消息

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 次下载

Apache-2.0

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