use poise::{serenity_prelude::CreateEmbed, CreateReply}; use serde::{Deserialize, Serialize}; use crate::{ consts::THEME_COLOR, models::CtxData, utils::{Extract, Recordable}, Context, Error, }; #[derive(Serialize, Deserialize, Extract)] pub struct Options; impl Recordable for Options { async fn run(self, ctx: Context<'_>) -> Result<(), Error> { let mut guild_data = ctx.guild_data().await.unwrap()?; guild_data.ephemeral_confirmations = true; guild_data.commit_changes(&ctx.data().database).await; ctx.send( CreateReply::default().ephemeral(true).embed( CreateEmbed::new() .title("Confirmations ephemeral") .description(concat!( "Reminder and todo confirmations will be sent privately, and removed when ", "your client restarts." )) .color(*THEME_COLOR), ), ) .await?; Ok(()) } } /// Set reminder confirmations to be sent "ephemerally" (private and cleared automatically) #[poise::command( slash_command, rename = "on", identifying_name = "set_ephemeral_confirmations", guild_only = true )] pub async fn set(ctx: Context<'_>) -> Result<(), Error> { (Options {}).run(ctx).await }