summaryrefslogtreecommitdiff
path: root/src/commands
diff options
context:
space:
mode:
authorseth <[email protected]>2023-12-15 01:14:15 -0500
committerseth <[email protected]>2023-12-15 16:41:13 -0500
commite38a441e37ec1a1dff07cf8bcff3e36a411709aa (patch)
tree4bb305a9981fca674c765eda35ec155f83b55367 /src/commands
parent89f34a53f7f89261bd23ebd06fb7531d6ceca101 (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.rs21
-rw-r--r--src/commands/mod.rs14
-rw-r--r--src/commands/moderation/actions.rs84
-rw-r--r--src/commands/moderation/mod.rs5
-rw-r--r--src/commands/optional/mod.rs10
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()]
+}