You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.1 KiB
Rust

// use serenity::async_trait;
use serenity::prelude::*;
use serenity::model::channel::{Message, Reaction};
// use serenity::model::gateway::Ready;
// use serenity::model::prelude::*;
pub mod test;
pub mod admin;
pub mod sm_server;
use crate::utils;
pub async fn initialize(_ctx: Context) -> Result<(), String>
{
Ok(())
}
pub async fn parse(ctx: Context, msg: Message)
{
if let Some(server_id) = msg.guild_id
{
// This is not a command
if msg.content.len() == 0 || msg.content.chars().nth(0) != Some('.')
{
return;
}
if server_id == utils::ADMIN_SERVER_ID && msg.channel_id == utils::ADMIN_COMMAND_CHANNEL_ID
{
test::parse_command(ctx, msg, server_id).await;
return;
}
if server_id == utils::SM_SERVER_ID
{
sm_server::parse_command(ctx, msg, server_id).await;
return;
}
}
else
{
utils::Logger::log_message(ctx, &format!("DM Received from {}: {}", msg.author.name, msg.content)).await;
}
}
pub async fn handle_reaction_add(ctx: Context, add_reaction: Reaction)
{
if let Some(server_id) = add_reaction.guild_id
{
if server_id == utils::ADMIN_SERVER_ID && add_reaction.channel_id == utils::ADMIN_COMMAND_CHANNEL_ID
{
//test::handle_reaction_add(ctx, add_reaction, server_id).await;
return;
}
if server_id == utils::SM_SERVER_ID
{
sm_server::handle_reaction_add(ctx, add_reaction).await;
return;
}
}
}
pub async fn handle_reaction_remove(ctx: Context, removed_reaction: Reaction)
{
if let Some(server_id) = removed_reaction.guild_id
{
if server_id == utils::ADMIN_SERVER_ID && removed_reaction.channel_id == utils::ADMIN_COMMAND_CHANNEL_ID
{
//test::handle_reaction_remove(ctx, removed_reaction, server_id).await;
return;
}
if server_id == utils::SM_SERVER_ID
{
sm_server::handle_reaction_remove(ctx, removed_reaction).await;
return;
}
}
}