Adds message and error logging

Adds logging of DM messages
main
Joey Pollack 2 years ago
parent ba0b55bbe7
commit 1a1be4294f

@ -1,63 +0,0 @@
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);
}
}
}
}

@ -0,0 +1,4 @@
use serenity::prelude::*;
use serenity::model::prelude::*;
use serenity::model::channel::Message;

@ -0,0 +1,24 @@
// use serenity::async_trait;
use serenity::prelude::*;
use serenity::model::channel::Message;
// use serenity::model::gateway::Ready;
// use serenity::model::prelude::*;
pub mod test;
use crate::utils;
pub async fn parse(ctx: Context, msg: Message)
{
if let Some(server_id) = msg.guild_id
{
if server_id == utils::ADMIN_SERVER_ID && msg.channel_id == utils::ADMIN_COMMAND_CHANNEL_ID
{
test::parse_command(ctx, msg, server_id).await;
}
}
else
{
utils::Logger::log_message(ctx, &format!("DM Received from {}: {}", msg.author.name, msg.content)).await;
}
}

@ -0,0 +1,59 @@
// use serenity::async_trait;
use serenity::model::channel::Message;
// use serenity::model::gateway::Ready;
use serenity::prelude::*;
use serenity::model::prelude::*;
use super::super::utils;
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_message(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
{
utils::Logger::log_error(ctx, &format!("Error updating roles: {:?}", why)).await;
}
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
{
utils::Logger::log_error(ctx, &format!("Error sending message: {:?}", why)).await;
}
}
return;
}
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);
}
}
}

@ -1,16 +1,13 @@
mod commands;
mod data_loader;
mod utils;
use commands::{CommandParser};
use serenity::async_trait;
use serenity::model::channel::Message;
use serenity::model::gateway::Ready;
use serenity::prelude::*;
use serenity::model::prelude::*;
// use serenity::model::prelude::*;
struct Handler;
@ -24,19 +21,7 @@ impl EventHandler for Handler
// events can be dispatched simultaneously.
async fn message(&self, ctx: Context, msg: Message)
{
if let Some(server_id) = msg.guild_id
{
let sm_speedrun_server_id = 98929157894836224;
let guru_test_server_id = 483735475283165195;
if server_id == sm_speedrun_server_id || server_id == guru_test_server_id
{
CommandParser::parse_command(ctx, msg, server_id).await;
}
}
commands::parse(ctx, msg).await;
}

@ -1,8 +1,40 @@
use rand::prelude::*;
use serenity::{client::Context, model::prelude::ChannelId};
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_message(ctx: Context, msg: &str)
{
let channel = ChannelId(MAIN_LOG_CHANNEL_ID);
if let Err(why) = channel.say(ctx, msg).await
{
println!("Failed to log message: {} -- Reason: {}", msg, why);
}
}
pub async fn log_error(ctx: Context, msg: &str)
{
let channel = ChannelId(ERROR_LOG_CHANNEL_ID);
if let Err(why) = channel.say(ctx, msg).await
{
println!("Failed to log an error: {} -- Reason: {}", msg, why);
}
}
}
pub fn get_random_item() -> String
{
let major_items = vec!["Missiles", "Super Missiles", "E Tank", "Power Bombs" ];
@ -36,27 +68,4 @@ 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);
}
}
}
}
Loading…
Cancel
Save