From c7358fd4c0800a66ee1bd43566346cf63c70f61e Mon Sep 17 00:00:00 2001
From: ErrorNoInternet <errornointernet@envs.net>
Date: Sat, 15 Mar 2025 23:06:21 -0400
Subject: [PATCH] feat(matrix): respond based on client username

---
 src/matrix/bot.rs | 6 +++---
 src/matrix/mod.rs | 3 ++-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/matrix/bot.rs b/src/matrix/bot.rs
index 2758c95..b1c0ebe 100644
--- a/src/matrix/bot.rs
+++ b/src/matrix/bot.rs
@@ -1,4 +1,4 @@
-use super::{COMMAND_PREFIX, MatrixContext};
+use super::MatrixContext;
 use crate::{
     events::call_listeners,
     lua::{self, matrix::room::Room as LuaRoom},
@@ -35,9 +35,9 @@ pub async fn on_regular_room_message(
         .get::<Vec<String>>("MatrixOwners")
         .unwrap_or_default()
         .contains(&event.sender.to_string())
-        && text_content.body.starts_with(COMMAND_PREFIX)
+        && text_content.body.starts_with(&ctx.name)
     {
-        let body = text_content.body[COMMAND_PREFIX.len()..]
+        let body = text_content.body[ctx.name.len()..]
             .trim_start_matches(':')
             .trim();
         let split = body.split_once(char::is_whitespace).unzip();
diff --git a/src/matrix/mod.rs b/src/matrix/mod.rs
index f867fe7..7680dd5 100644
--- a/src/matrix/mod.rs
+++ b/src/matrix/mod.rs
@@ -17,6 +17,7 @@ use verification::{on_device_key_verification_request, on_room_message_verificat
 #[derive(Clone)]
 pub struct MatrixContext {
     state: State,
+    name: String,
 }
 
 #[derive(Clone, Serialize, Deserialize)]
@@ -87,7 +88,7 @@ pub async fn login(
         fs::write(&session_file, serde_json::to_string(&new_session)?).await?;
     }
 
-    client.add_event_handler_context(MatrixContext { state });
+    client.add_event_handler_context(MatrixContext { state, name });
     client.add_event_handler(on_stripped_state_member);
     loop {
         match client.sync_once(sync_settings.clone()).await {