diff --git a/src/commands/moderation_cmds.rs b/src/commands/moderation_cmds.rs index 3e5341c..eae2d27 100644 --- a/src/commands/moderation_cmds.rs +++ b/src/commands/moderation_cmds.rs @@ -22,7 +22,9 @@ use crate::{ GuildData, }, SQLPool, + FrameworkCtx, }; +use serenity::framework::Framework; lazy_static! { static ref REGEX_CHANNEL: Regex = Regex::new(r#"^\s*<#(\d+)>\s*$"#).unwrap(); @@ -309,13 +311,19 @@ UPDATE command_aliases SET command = ? WHERE guild_id = (SELECT id FROM guilds W else { match sqlx::query!( " -SELECT command FROM command_aliases WHERE guild_id = ? AND name = ? +SELECT command FROM command_aliases WHERE guild_id = (SELECT id FROM guilds WHERE guild = ?) AND name = ? ", guild_id, name) .fetch_one(&pool) .await { Ok(row) => { - // run aliased command content + let framework = ctx.data.read().await + .get::().cloned().expect("Could not get FrameworkCtx from data"); + + let mut new_msg = msg.clone(); + new_msg.content = format!("<@{}> {}", &ctx.cache.current_user_id().await, row.command); + + framework.dispatch(ctx.clone(), new_msg).await; }, Err(_) => { diff --git a/src/framework.rs b/src/framework.rs index 3023b42..571ed57 100644 --- a/src/framework.rs +++ b/src/framework.rs @@ -295,8 +295,7 @@ impl Framework for RegexFramework { if (msg.author.bot && self.ignore_bots) || msg.tts || msg.content.len() == 0 || - msg.attachments.len() > 0 - { + msg.attachments.len() > 0 { return } diff --git a/src/main.rs b/src/main.rs index 028be6e..135075e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -86,6 +86,8 @@ async fn main() -> Result<(), Box> { .add_command("offset", &reminder_cmds::OFFSET_COMMAND) .add_command("nudge", &reminder_cmds::NUDGE_COMMAND) + .add_command("alias", &moderation_cmds::ALIAS_COMMAND) + .build(); let framework_arc = Arc::new(Box::new(framework) as Box);