use ahhhh::YellResponder; use best_doctor::BestDoctorResponder; use fufufu::FufufuResponder; use serenity::async_trait; use serenity::model::channel::Message; use serenity::prelude::{Context, EventHandler}; mod ahhhh; mod best_doctor; mod fufufu; pub(crate) struct Handler { responders: Vec>, } impl Default for Handler { fn default() -> Self { Self { responders: vec![ Box::new(BestDoctorResponder::default()), Box::new(FufufuResponder::default()), Box::new(YellResponder::default()), ], } } } #[async_trait] impl EventHandler for Handler { async fn message(&self, ctx: Context, message: Message) { for responder in self.responders.iter() { responder.message(ctx.clone(), message.clone()).await; } } }