This crate provides some types for rich interactions with serenity such as Menus and Ephemeral (self deleting) Messages.
You have to register the module in the serenity client builder. ```rust use serenity::client::Client; use serenity_additions::RegisterRichInteractions; use serenity::prelude::GatewayIntents;
let client = Client::builder("TOKEN", GatewayIntends::default()).registerserenityadditions() ```
```rust use serenity::builder::CreateMessage; use serenity::client::Context; use serenity::model::id::ChannelId; use serenityadditions::menu::{MenuBuilder, Page}; use std::time::Duration; use serenityadditions::Result;
pub async fn createmenu( ctx: &Context, channelid: 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(())
} ```
```rust use serenityadditions::core::SHORTTIMEOUT; use serenityadditions::ephemeralmessage::EphemeralMessage; use serenity_additions::Result; use serenity::client::Context; use serenity::model::id::ChannelId;
pub async fn createephemeralmessage(ctx: &Context, channelid: ChannelId) -> Result<()> { EphemeralMessage::create(&ctx.http, channelid, SHORT_TIMEOUT, |m| { m.content("Hello World") }).await?;
Ok(())
}
```
Apache-2.0