diff --git a/src/botv2/cmd/server_config/init_server.rs b/src/botv2/cmd/server_config/init_server.rs index 62af330..af646b6 100644 --- a/src/botv2/cmd/server_config/init_server.rs +++ b/src/botv2/cmd/server_config/init_server.rs @@ -1,5 +1,8 @@ use crate::botv2::{ - domain::server_config::change_enable_server::change_enable_server, + domain::server_config::{ + change_enable_server::change_enable_server, + check_if_server_enable_and_admin::check_if_server_enable_and_user_admin, + }, init::{Context, Error}, }; use poise::{ @@ -14,8 +17,7 @@ use tracing::instrument; slash_command, prefix_command, category = "server_config", - guild_only = true, - owners_only = true + guild_only = true )] pub async fn init( ctx: Context<'_>, @@ -27,6 +29,38 @@ pub async fn init( }; let entity_name = ctx.data().entity_name.clone(); let footer = CreateEmbedFooter::new(entity_name.clone()); + match check_if_server_enable_and_user_admin(guild.get(), ctx.author().id.get(), ctx.http()) + .await + { + Ok((ok, _)) => { + if !ok { + let embed = CreateEmbed::new() + .title("You are not an admin") + .color(colour::Color::RED) + .footer(footer); + if let Err(why) = ctx + .send(CreateReply::default().embed(embed).ephemeral(true)) + .await + { + tracing::error!("Error sending message: {:?}", why); + } + return Ok(()); + } + } + Err(_) => { + let embed = CreateEmbed::new() + .title("You are not an admin") + .color(colour::Color::RED) + .footer(footer); + if let Err(why) = ctx + .send(CreateReply::default().embed(embed).ephemeral(true)) + .await + { + tracing::error!("Error sending message: {:?}", why); + } + return Ok(()); + } + }; let answer = match change_enable_server(guild.get(), enable).await { Ok(_) => CreateEmbed::new() .title("Server config initialized")