diff --git a/src/brain.rs b/src/brain.rs index 5a7510c..151ac53 100644 --- a/src/brain.rs +++ b/src/brain.rs @@ -96,7 +96,7 @@ impl Brain { let chance = if is_self { 45 } else { 80 }; let roll = rand.u8(0..=100); - (FORCE_REPLIES && !is_self) || roll <= chance + (FORCE_REPLIES) || roll <= chance } fn extract_final_token(msg: &str) -> Option { diff --git a/src/main.rs b/src/main.rs index 7ca861a..09cc149 100644 --- a/src/main.rs +++ b/src/main.rs @@ -51,18 +51,17 @@ pub struct BotContext { async fn handle_discord_event(event: Event, ctx: Arc) -> Result { match event { - Event::MessageCreate(msg) => handle_discord_message(msg, ctx).await?, + Event::MessageCreate(msg) => handle_discord_message(msg, ctx).await, Event::Ready(ev) => { info!("Connected to gateway as {}", ev.user.name); let brain = ctx.brain_handle.lock().await; - update_status(&*brain, &ctx.shard_sender).context("Failed to update status")?; + update_status(&*brain, &ctx.shard_sender).context("Failed to update status") } _ => { debug!("Ev: {event:?}"); + Ok(()) } } - - Ok(()) } fn load_brain(path: &Path) -> Result> { @@ -176,6 +175,9 @@ async fn main() -> Result { loop { tokio::select! { + + biased; + Ok(()) = tokio::signal::ctrl_c() => { info!("SIGINT: Closing connection and saving"); shard.close(CloseFrame::NORMAL); diff --git a/src/on_message.rs b/src/on_message.rs index 5032c2f..cd552ee 100644 --- a/src/on_message.rs +++ b/src/on_message.rs @@ -20,17 +20,20 @@ pub async fn handle_discord_message(msg: Box, ctx: Arc, ctx: Arc