Serenity Additions

This crate provides some types for rich interactions with serenity such as Menus and Ephemeral (self deleting) Messages.

Usage

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() ```

Menu

```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(())

} ```

Ephemeral Message

```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(())

}

```

License

Apache-2.0