use crate::handlers::LineHandler; use crate::joker::tell_joke; use serenity::async_trait; use serenity::model::channel::Message; use serenity::prelude::*; pub struct JokeHandler; #[async_trait] impl LineHandler for JokeHandler { async fn line(&self, ctx: &Context, msg: &Message, line: &str) { if line == "!JOKE" { match tell_joke().await { Some(s) => msg.channel_id.say(&ctx, s).await.unwrap(), None => msg .channel_id .say(&ctx, "There was an error while fetching a joke.") .await .unwrap(), }; } } } impl Default for JokeHandler { fn default() -> Self { Self } }