diff --git a/Cargo.toml b/Cargo.toml index 5bc8c95..1fa7398 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "manifold" -version = "3.2.0" +version = "3.3.0" authors = ["Lucy Bladen "] edition = "2021" diff --git a/src/events.rs b/src/events.rs index 8ebf6ab..90b335c 100644 --- a/src/events.rs +++ b/src/events.rs @@ -221,34 +221,51 @@ impl Handler { async fn message_deleted(ctx: &Context, fctx: &FrameworkContext<'_, ManifoldData, ManifoldError>, channel_id: &ChannelId, deleted_message_id: &MessageId, _guild_id: &Option) -> ManifoldResult<()> { let log_channel = fctx.user_data().await.bot_config.channels.log; - let mut content: String = "Not Available / Not Cached".to_string(); - let author; - let channel = match ctx.cache.guild_channel(channel_id) { Some(c) => c.name, None => format!("Not Available / Not Cached ({})", channel_id) }; - if let Some(msg) = ctx.cache.message(channel_id, deleted_message_id) { - content = msg.content_safe(&ctx.cache); - author = msg.author; - } else { - author = User::default(); - } + match ctx.cache.message(channel_id, deleted_message_id) { + Some(msg) => { - log_channel.send_message(ctx, |f| { - f - .content("") - .embed(|e| { - e - .title(format!("Message removed in #{} ({})", channel, channel_id )) - .colour(Colour::from_rgb(255, 0, 0)) - .author(|a| a.name(author.name)) - .field("Message Content", content, false) - .timestamp(Timestamp::now()) - .footer(|f| f.text(author.id)) - }) - }).await?; + let mut attachment_urls: Vec = Vec::new(); + for attachment in &msg.attachments { + attachment_urls.push(attachment.url.clone()); + } + + log_channel.send_message(ctx, |f| { + f + .content("") + .embed(|e| { + e + .title(format!("Message removed in #{} ({})", channel, channel_id)) + .colour(Colour::from_rgb(255, 0, 0)) + .author(|a| a.name(&msg.author.name)) + .field("Message Content", msg.content_safe(&ctx.cache), false) + .field("Message Attachments", attachment_urls.join(", "), false) + .timestamp(Timestamp::now()) + .footer(|f| f.text(&msg.author.id)); + for attachment in &msg.attachments { + e.image(attachment.url.clone()); + } + e + }) + }).await?; + }, + None => { + log_channel.send_message(ctx, |f| { + f + .content("") + .embed(|e| { + e + .title(format!("Message removed in #{} ({}) (Not cached)", channel, channel_id)) + .colour(Colour::from_rgb(255, 0, 0)) + .timestamp(Timestamp::now()) + }) + }).await?; + } + } Ok(()) }