diff --git a/src/commands.rs b/src/commands.rs index e69de29..cd4239c 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -0,0 +1,63 @@ + + +use serenity::async_trait; +use serenity::model::channel::Message; +use serenity::model::gateway::Ready; +use serenity::prelude::*; +use serenity::model::prelude::*; + +use super::utils; + +pub struct CommandParser; + +impl CommandParser +{ + pub async fn parse_command(ctx: Context, msg: Message, server_id: GuildId) + { + + if server_id == utils::ADMIN_SERVER_ID + { + if msg.content == ".log_test" + { + utils::Logger::log_test(ctx, "This is a test log message!").await; + return; + } + } + + if msg.content == ".role_test" + { + let test_role = RoleId(1129106677619228702 as u64); + if let Err(why) = server_id.edit_member(&ctx, msg.author, |m| + { + if let Some(mut member) = msg.member + { + member.roles.push(test_role); + return m.roles(member.roles); + } + + m + }).await + { + println!("Error updating roles: {:?}", why); + } + else + { + let role = &server_id.roles(&ctx).await.unwrap()[&test_role]; + if let Err(why) = msg.channel_id.say(&ctx.http, format!("{} role added!", role)).await + { + println!("Error sending message: {:?}", why); + } + } + } + + + if msg.content == ".randomizer" + { + let item = utils::get_random_item(); + if let Err(why) = msg.channel_id.say(&ctx.http, format!("You found {}!", item)).await + { + println!("Error sending message: {:?}", why); + } + } + } +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index bb2199d..d59fbb3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,7 @@ mod commands; mod data_loader; mod utils; +use commands::{CommandParser}; use serenity::async_trait; use serenity::model::channel::Message; @@ -31,41 +32,8 @@ impl EventHandler for Handler if server_id == sm_speedrun_server_id || server_id == guru_test_server_id { - if msg.content == ".role_test" - { - let test_role = RoleId(1129106677619228702 as u64); - if let Err(why) = server_id.edit_member(&ctx, msg.author, |m| - { - if let Some(mut member) = msg.member - { - member.roles.push(test_role); - return m.roles(member.roles); - } - - m - }).await - { - println!("Error updating roles: {:?}", why); - } - else - { - let role = &server_id.roles(&ctx).await.unwrap()[&test_role]; - if let Err(why) = msg.channel_id.say(&ctx.http, format!("{} role added!", role)).await - { - println!("Error sending message: {:?}", why); - } - } - } + CommandParser::parse_command(ctx, msg, server_id).await; - - if msg.content == ".randomizer" - { - let item = utils::get_random_item(); - if let Err(why) = msg.channel_id.say(&ctx.http, format!("You found {}!", item)).await - { - println!("Error sending message: {:?}", why); - } - } } } diff --git a/src/utils.rs b/src/utils.rs index 064f8a8..376c592 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,4 +1,7 @@ + + use rand::prelude::*; +use serenity::{client::Context, model::prelude::ChannelId}; pub fn get_random_item() -> String { @@ -35,4 +38,25 @@ pub fn get_random_item() -> String } +pub const ADMIN_SERVER_ID: u64 = 483735475283165195; +pub const ADMIN_COMMAND_CHANNEL_ID: u64 = 1130607621699809443; +pub const MAIN_LOG_CHANNEL_ID: u64 = 1130607583007363074; +pub const ERROR_LOG_CHANNEL_ID: u64 = 1130607602221461564; + +pub struct Logger +{ + +} + +impl Logger +{ + pub async fn log_test(ctx: Context, msg: &str) + { + let channel = ChannelId(MAIN_LOG_CHANNEL_ID); + if let Err(why) = channel.say(ctx, msg).await + { + println!("Error sending message to log channel: {}", why); + } + } +} \ No newline at end of file