manifold/src/events.rs

49 lines
1.3 KiB
Rust
Raw Normal View History

2021-11-12 12:02:22 +00:00
use std::sync::atomic::AtomicBool;
use serenity::async_trait;
use serenity::model::{
gateway::Ready,
id::ChannelId,
};
use serenity::prelude::{Context, EventHandler};
use crate::config::{Config, ManifoldConfig};
use crate::responses::Responses;
pub struct Handler {
2021-11-12 12:15:59 +00:00
pub timer_running: AtomicBool,
2021-11-12 12:02:22 +00:00
}
impl Handler {
pub fn new() -> Self {
Handler {
timer_running: AtomicBool::from(false)
}
}
}
#[async_trait]
impl EventHandler for Handler {
async fn ready(&self, ctx: Context, _data_about_bot: Ready) {
let data = ctx.data.read().await;
let config = match data.get::<ManifoldConfig>() {
Some(c) => c.lock().await,
None => return
};
let responses = match data.get::<Responses>() {
Some(r) => r.lock().await,
None => return
};
let greeting = match responses.get_response(&"bot startup".to_string()) {
Some(g) => g.replace("{NAME}", &*ctx.cache.current_user().await.name).replace("{COFFEE_TYPE}", "espresso").to_string(),
None => "Manifold bot connected to discord and ready to begin broadcast operations.".to_string(),
};
let channel: ChannelId = config.get_channel(&"Log".to_string());
channel.say(&ctx, greeting).await.expect("Couldn't message log channel!");
}
}