sparkle-convenience

Crates.iosparkle-convenience
lib.rssparkle-convenience
version0.16.0-rc.3
sourcesrc
created_at2022-11-18 12:54:35.698149
updated_at2023-08-15 19:26:38.717003
descriptionA wrapper over Twilight designed to make it more convenient to use
homepage
repositoryhttps://github.com/laralove143/sparkle-convenience/
max_upload_size
id717871
size71,375
lara (laralove143)

documentation

README

❓ RC INFO

This version isn't unstable, but it includes breaking changes. It will be published as non-RC when Twilight publishes its next version so that the version of this crate follows Twilight's version

✨😌 Sparkle Convenience

A wrapper over Twilight that's designed to be convenient to use, without relying on callbacks and mostly following Twilight patterns while making your life easier

✨ FEATURES

  • Get your bot started with one method
  • Defer, respond to or update responses of interactions without having to track anything yourself
  • Extract interaction data easily
  • Send timed messages that are deleted after a timeout
  • Handle user errors with little boilerplate and with edge cases caught
  • Log internal errors with webhooks
  • Much more you can find out in the docs!

😋 A TASTE OF CONVENIENCE

let bot = Bot::new(
    "forgot to leak my token".to_owned(),
    Intents::empty(),
    EventTypeFlags::INTERACTION_CREATE,
)
.await?;

let handle = bot.interaction_handle(&interaction);
if interaction.name().ok()? == "pay_respects" {
    handle.defer(DeferVisibility::Ephemeral).await?;
    handle.check_permissions(Permissions::MANAGE_GUILD)?;
    let very_respected_user = interaction.data.ok()?.command().ok()?.target_id.ok()?;

    handle
        .reply(
            Reply::new()
                .ephemeral()
                .content("Paying respects".to_owned()),
        )
        .await?;

    handle
        .reply(
            Reply::new()
                .ephemeral()
                .update_last()
                .content(format!("<@{very_respected_user}> has +1 respect now")),
        )
        .await?;
}

🚚 CARGO FEATURES

  • anyhow: Pulls the anyhow crate to provide convenience features around it in the error module

✉️ CONTACT

Feature Requests? Bugs? Support? Contributions? You name it, I'm always looking for community feedback from anyone who uses my work!

If you have a question, join Twilight's Discord server please

Commit count: 209

cargo fmt