summaryrefslogtreecommitdiff
path: root/src/commands/moderation/clear.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/moderation/clear.rs')
-rw-r--r--src/commands/moderation/clear.rs39
1 files changed, 0 insertions, 39 deletions
diff --git a/src/commands/moderation/clear.rs b/src/commands/moderation/clear.rs
deleted file mode 100644
index bfc9c38..0000000
--- a/src/commands/moderation/clear.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-use crate::Context;
-
-use eyre::{Context as _, Result};
-use log::debug;
-use poise::serenity_prelude::futures::{StreamExt, TryStreamExt};
-
-#[poise::command(
- slash_command,
- ephemeral,
- required_permissions = "MANAGE_MESSAGES",
- default_member_permissions = "MANAGE_MESSAGES"
-)]
-pub async fn clear_messages(
- ctx: Context<'_>,
- #[description = "How many messages to delete"] num_messages: usize,
-) -> Result<()> {
- ctx.defer_ephemeral().await?;
-
- let channel = ctx.channel_id();
- let messages = channel
- .messages_iter(ctx)
- .take(num_messages)
- .try_fold(Vec::new(), |mut acc, msg| async move {
- acc.push(msg);
- Ok(acc)
- })
- .await
- .wrap_err_with(|| {
- format!("Couldn't collect {num_messages} messages from channel {channel}")
- })?;
-
- debug!("Clearing {num_messages} messages from channel {channel}!");
- channel.delete_messages(ctx, messages).await?;
-
- ctx.reply(format!("Deleted {num_messages} message(s)"))
- .await?;
-
- Ok(())
-}