diff options
| author | seth <[email protected]> | 2023-12-15 01:14:15 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-12-15 16:41:13 -0500 |
| commit | e38a441e37ec1a1dff07cf8bcff3e36a411709aa (patch) | |
| tree | 4bb305a9981fca674c765eda35ec155f83b55367 /src/commands | |
| parent | 89f34a53f7f89261bd23ebd06fb7531d6ceca101 (diff) | |
remove moderation commands
this was mainly an experiment; i don't think we need them
Diffstat (limited to 'src/commands')
| -rw-r--r-- | src/commands/general/config.rs (renamed from src/commands/moderation/config.rs) | 0 | ||||
| -rw-r--r-- | src/commands/general/mod.rs | 21 | ||||
| -rw-r--r-- | src/commands/mod.rs | 14 | ||||
| -rw-r--r-- | src/commands/moderation/actions.rs | 84 | ||||
| -rw-r--r-- | src/commands/moderation/mod.rs | 5 | ||||
| -rw-r--r-- | src/commands/optional/mod.rs | 10 |
6 files changed, 26 insertions, 108 deletions
diff --git a/src/commands/moderation/config.rs b/src/commands/general/config.rs index 64cdb83..64cdb83 100644 --- a/src/commands/moderation/config.rs +++ b/src/commands/general/config.rs diff --git a/src/commands/general/mod.rs b/src/commands/general/mod.rs index ffb4d63..1031d5b 100644 --- a/src/commands/general/mod.rs +++ b/src/commands/general/mod.rs @@ -1,11 +1,22 @@ +use crate::Data; + +use color_eyre::eyre::Report; +use poise::Command; + mod ask; mod bing; +mod config; mod convert; mod random; mod version; -pub use ask::ask; -pub use bing::bing; -pub use convert::convert; -pub use random::random; -pub use version::version; +pub fn to_comands() -> Vec<Command<Data, Report>> { + vec![ + ask::ask(), + bing::bing(), + config::config(), + convert::convert(), + random::random(), + version::version(), + ] +} diff --git a/src/commands/mod.rs b/src/commands/mod.rs index 833df38..df2d857 100644 --- a/src/commands/mod.rs +++ b/src/commands/mod.rs @@ -4,22 +4,12 @@ use color_eyre::eyre::Report; use poise::Command; mod general; -mod moderation; mod optional; pub fn to_global_commands() -> Vec<Command<Data, Report>> { - vec![ - general::ask(), - general::bing(), - general::convert(), - general::random(), - general::version(), - moderation::config(), - moderation::ban_user(), - moderation::kick_user(), - ] + general::to_comands() } pub fn to_optional_commands() -> Vec<Command<Data, Report>> { - vec![optional::copypasta(), optional::teawiespam()] + optional::to_commands() } diff --git a/src/commands/moderation/actions.rs b/src/commands/moderation/actions.rs deleted file mode 100644 index f7ba7b7..0000000 --- a/src/commands/moderation/actions.rs +++ /dev/null @@ -1,84 +0,0 @@ -use crate::colors::Colors; -use crate::Context; - -use color_eyre::eyre::{eyre, Result}; -use log::*; -use poise::serenity_prelude::{CreateEmbed, User}; - -fn create_moderation_embed( - title: String, - user: &User, - delete_messages_days: Option<u8>, - reason: String, -) -> impl FnOnce(&mut CreateEmbed) -> &mut CreateEmbed { - let reason = if reason.is_empty() { - "n/a".to_string() - } else { - reason - }; - - let fields = [ - ("User", format!("{} ({})", user.name, user.id), false), - ("Reason", reason, false), - ( - "Deleted messages", - format!("Last {} days", delete_messages_days.unwrap_or(0)), - false, - ), - ]; - - |e: &mut CreateEmbed| e.title(title).fields(fields).color(Colors::Red) -} - -/// ban a user -#[poise::command( - slash_command, - prefix_command, - required_permissions = "BAN_MEMBERS", - default_member_permissions = "BAN_MEMBERS" -)] -pub async fn ban_user( - ctx: Context<'_>, - user: User, - delete_messages_days: Option<u8>, - reason: Option<String>, -) -> Result<()> { - let days = delete_messages_days.unwrap_or(1); - let guild = ctx - .guild() - .ok_or_else(|| eyre!("Couldn't get guild from message; Unable to ban!"))?; - - let reason = reason.unwrap_or_default(); - - debug!("Banning user {} with reason {reason}", user.id); - guild.ban_with_reason(ctx, &user, days, &reason).await?; - - let embed = create_moderation_embed("User banned!".to_string(), &user, Some(days), reason); - - ctx.send(|m| m.embed(embed)).await?; - - Ok(()) -} - -/// kick a user -#[poise::command( - slash_command, - prefix_command, - required_permissions = "KICK_MEMBERS", - default_member_permissions = "KICK_MEMBERS" -)] -pub async fn kick_user(ctx: Context<'_>, user: User, reason: Option<String>) -> Result<()> { - let guild = ctx - .guild() - .ok_or_else(|| eyre!("Couldn't get guild from message; Unable to ban!"))?; - - let reason = reason.unwrap_or_default(); - - debug!("Kicking user {} for reason {reason}", user.id); - guild.kick_with_reason(ctx, &user, &reason).await?; - - let embed = create_moderation_embed("User kicked!".to_string(), &user, None, reason); - ctx.send(|m| m.embed(embed)).await?; - - Ok(()) -} diff --git a/src/commands/moderation/mod.rs b/src/commands/moderation/mod.rs deleted file mode 100644 index def251c..0000000 --- a/src/commands/moderation/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -mod actions; -mod config; - -pub use actions::*; -pub use config::config; diff --git a/src/commands/optional/mod.rs b/src/commands/optional/mod.rs index 451deeb..2be1fef 100644 --- a/src/commands/optional/mod.rs +++ b/src/commands/optional/mod.rs @@ -1,5 +1,11 @@ +use crate::Data; + +use color_eyre::eyre::Report; +use poise::Command; + mod copypasta; mod teawiespam; -pub use copypasta::copypasta; -pub use teawiespam::teawiespam; +pub fn to_commands() -> Vec<Command<Data, Report>> { + vec![copypasta::copypasta(), teawiespam::teawiespam()] +} |
