From 3d07413690c551d9f034c93af85ae8da5a495e14 Mon Sep 17 00:00:00 2001 From: seth Date: Sat, 20 Apr 2024 02:31:40 +0000 Subject: spring cleaning (#165) * treewide: lightly refactor everything * once_cell -> std::sync * remove build.rs we can get our target at runtime * commands::copypasta: refactor selection * drop owo_colors * reactboard: always remove author from count * commands: better handle behavior outside of guilds * ci: garnix -> gha * nix: drop flake-parts & pre-commit-hooks * nix: fix rust flags in derivation * add gha badge to readme * ci: fail when format changes are made * ci: only run on push to main * nix: fix nil script * nix: add libiconv to darwin deps * ci: disable fail-fast * nix: fix actionlint & static checks * ci: add release gates * nix: fix nil check again * ci: give release gates unique names * ci: only build static packages in docker workflow * nix: move dev outputs to subflake * fix some typos * nix: cleanup checks & dev shell * add editorconfig --- src/commands/moderation/clear_messages.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/commands/moderation/clear_messages.rs (limited to 'src/commands/moderation/clear_messages.rs') diff --git a/src/commands/moderation/clear_messages.rs b/src/commands/moderation/clear_messages.rs new file mode 100644 index 0000000..8761bcb --- /dev/null +++ b/src/commands/moderation/clear_messages.rs @@ -0,0 +1,30 @@ +use crate::{Context, Error}; + +use log::debug; +use poise::serenity_prelude::GetMessages; + +#[poise::command( + slash_command, + guild_only, + 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: u8, +) -> Result<(), Error> { + ctx.defer_ephemeral().await?; + + let channel = ctx.channel_id(); + let to_get = GetMessages::new().limit(num_messages); + let messages = channel.messages(ctx, to_get).await?; + + debug!("Clearing {num_messages} messages from channel {channel}!"); + channel.delete_messages(ctx, messages).await?; + + ctx.reply(format!("Deleted {num_messages} message(s)")) + .await?; + + Ok(()) +} -- cgit v1.2.3