* Made todo added responses ephemeral if /settings ephemeral is on * Enabled systemd watchdog * Move metrics to rocket
47 lines
1.3 KiB
Rust
47 lines
1.3 KiB
Rust
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
|
|
}
|