From 358df91509e8f8000301dfd8a5f691d13d180054 Mon Sep 17 00:00:00 2001 From: TheKodeToad Date: Sun, 3 Dec 2023 13:42:36 +0000 Subject: [PATCH] feat: reintroduce eta Signed-off-by: seth --- src/consts.rs | 19 +++++++++++++++++++ src/handlers/error.rs | 2 +- src/handlers/event/eta.rs | 18 ++++++++++++++++++ src/handlers/event/mod.rs | 8 +++++--- 4 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 src/handlers/event/eta.rs diff --git a/src/consts.rs b/src/consts.rs index 10cbf68..63d5e12 100644 --- a/src/consts.rs +++ b/src/consts.rs @@ -11,3 +11,22 @@ pub static COLORS: Lazy> = Lazy::new(|| { ("orange", (251, 146, 60)), ]) }); + +pub const ETA_MESSAGES: [&str; 16] = [ + "Sometime", + "Some day", + "Not far", + "The future", + "Never", + "Perhaps tomorrow?", + "There are no ETAs", + "No", + "Nah", + "Yes", + "Yas", + "Next month", + "Next year", + "Next week", + "In Prism Launcher 2.0.0", + "At the appropriate juncture, in due course, in the fullness of time", +]; diff --git a/src/handlers/error.rs b/src/handlers/error.rs index 1ed4dc0..5842b49 100644 --- a/src/handlers/error.rs +++ b/src/handlers/error.rs @@ -6,7 +6,7 @@ use log::*; use poise::serenity_prelude::Timestamp; use poise::FrameworkError; -pub async fn handle(error: poise::FrameworkError<'_, Data, Report>) { +pub async fn handle(error: FrameworkError<'_, Data, Report>) { match error { FrameworkError::Setup { error, .. } => error!("Error setting up client!\n{error:#?}"), diff --git a/src/handlers/event/eta.rs b/src/handlers/event/eta.rs new file mode 100644 index 0000000..3e44674 --- /dev/null +++ b/src/handlers/event/eta.rs @@ -0,0 +1,18 @@ +use crate::{consts, utils}; + +use color_eyre::eyre::Result; +use poise::serenity_prelude::{Context, Message}; + +pub async fn handle_eta(ctx: &Context, message: &Message) -> Result<()> { + if !message.content.contains(" eta ") { + return Ok(()); + } + + let response = format!( + "{} <:pofat:1031701005559144458>", + utils::random_choice(consts::ETA_MESSAGES)? + ); + + message.reply(ctx, response).await?; + Ok(()) +} diff --git a/src/handlers/event/mod.rs b/src/handlers/event/mod.rs index 530d145..bf60a5f 100644 --- a/src/handlers/event/mod.rs +++ b/src/handlers/event/mod.rs @@ -1,11 +1,13 @@ use crate::Data; use color_eyre::eyre::{Report, Result}; -use poise::serenity_prelude as serenity; +use poise::serenity_prelude::Context; use poise::{Event, FrameworkContext}; +mod eta; + pub async fn handle( - ctx: &serenity::Context, + ctx: &Context, event: &Event<'_>, framework: FrameworkContext<'_, Data, Report>, data: &Data, @@ -15,7 +17,7 @@ pub async fn handle( log::info!("Logged in as {}!", data_about_bot.user.name) } - Event::Message { new_message } => {} + Event::Message { new_message } => eta::handle_eta(ctx, new_message).await?, _ => {} }