diff --git a/src/bot/cmd/meme/enable.rs b/src/bot/cmd/meme/enable.rs index 138ee02..5e2233d 100644 --- a/src/bot/cmd/meme/enable.rs +++ b/src/bot/cmd/meme/enable.rs @@ -1,7 +1,9 @@ use serenity::{ all::Message, + builder::{CreateEmbed, CreateEmbedFooter, CreateMessage}, client::Context, framework::standard::{macros::command, Args, CommandResult}, + model::colour, }; use crate::db::user_image::UserImage; @@ -13,6 +15,10 @@ pub async fn enable(ctx: &Context, msg: &Message, mut args: Args) -> CommandResu Some(guild) => guild, None => return Ok(()), }; + let footer = CreateEmbedFooter::new("WeeboBot"); + let embed = CreateEmbed::new() + .title("Enable/Disable auto meme answer") + .footer(footer); let mut user_in_db: UserImage = match UserImage::find_by_server_id_user_id(&guild.get(), &msg.author.id.get()).await { Ok(Some(user_in_db)) => user_in_db.clone(), @@ -21,11 +27,11 @@ pub async fn enable(ctx: &Context, msg: &Message, mut args: Args) -> CommandResu match user_in_db.create().await { Ok(_) => user_in_db, Err(e) => { - if let Err(why) = msg - .channel_id - .say(&ctx.http, "Couldn't create user in db") - .await - { + let embed = embed + .field("Could't create user in db", e.to_string(), false) + .color(colour::Color::RED); + let builder = CreateMessage::new().embed(embed).reference_message(msg); + if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await { println!("Error sending message: {:?}", why) } println!("Error saving user image: {:?}", e); @@ -34,11 +40,11 @@ pub async fn enable(ctx: &Context, msg: &Message, mut args: Args) -> CommandResu } } Err(e) => { - if let Err(why) = msg - .channel_id - .say(&ctx.http, "Error finding user image") - .await - { + let embed = embed + .field("Error finding user image", e.to_string(), false) + .color(colour::Color::RED); + let builder = CreateMessage::new().embed(embed).reference_message(msg); + if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await { println!("Error sending message: {:?}", why) } println!("Error finding user image: {:?}", e); @@ -47,11 +53,13 @@ pub async fn enable(ctx: &Context, msg: &Message, mut args: Args) -> CommandResu }; if let Ok(new_status) = args.single::() { if user_in_db.enable == new_status { - if let Err(why) = msg - .channel_id - .say(&ctx.http, format!("Auto answer the same : {}", new_status)) - .await - { + let embed = embed.field( + format!("Auto answer the same : {}", new_status), + String::new(), + false, + ); + let builder = CreateMessage::new().embed(embed).reference_message(msg); + if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await { println!("Error sending message: {:?}", why) } return Ok(()); @@ -59,20 +67,16 @@ pub async fn enable(ctx: &Context, msg: &Message, mut args: Args) -> CommandResu user_in_db.enable = new_status; match user_in_db.update().await { Ok(_) => { - if let Err(why) = msg - .channel_id - .say(&ctx.http, format!("Auto answer : {}", new_status)) - .await - { + let embed = embed.field("Auto answer", new_status.to_string(), false); + let builder = CreateMessage::new().embed(embed).reference_message(msg); + if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await { println!("Error sending message: {:?}", why) } } Err(e) => { - if let Err(why) = msg - .channel_id - .say(&ctx.http, "Couldn't update user in db") - .await - { + let embed = embed.field("Couldn't update user in db", e.to_string(), false); + let builder = CreateMessage::new().embed(embed).reference_message(msg); + if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await { println!("Error sending message: {:?}", why) } println!("Error saving user image: {:?}", e); @@ -81,14 +85,9 @@ pub async fn enable(ctx: &Context, msg: &Message, mut args: Args) -> CommandResu } return Ok(()); } else { - if let Err(why) = msg - .channel_id - .say( - &ctx.http, - format!("Auto answer enabled : {}", user_in_db.enable), - ) - .await - { + let embed = embed.field("Auto answer", user_in_db.enable.to_string(), false); + let builder = CreateMessage::new().embed(embed).reference_message(msg); + if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await { println!("Error sending message: {:?}", why) } }