summary refs log tree commit diff
path: root/src/system/plugin/autoproxy.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/system/plugin/autoproxy.rs')
-rw-r--r--src/system/plugin/autoproxy.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/system/plugin/autoproxy.rs b/src/system/plugin/autoproxy.rs
index 0bbebf5..58f9668 100644
--- a/src/system/plugin/autoproxy.rs
+++ b/src/system/plugin/autoproxy.rs
@@ -42,7 +42,13 @@ impl<'system> SeancePlugin<'system> for Autoproxy {
             Some("off") => *self.current_state.lock().await = InnerState::Off,
             Some("latch") => *self.current_state.lock().await = InnerState::LatchInactive,
             Some("member") => {
-                logger.log_err(None, "Member mode not supported yet".to_string()).await;
+                let mention = args.next();
+                if let Some(member) = system.resolve_mention(mention).await {
+                    logger.log_line(Some(member.discord_token.clone()), "Setting member autoproxy".to_string()).await;
+                    {*self.current_state.lock().await = InnerState::Member { current_member: member.clone() }};
+                } else {
+                    logger.log_err(None, format!("Unknown user: {}", mention.unwrap_or("[empty string]"))).await;
+                }
             },
             Some(other) => {
                 logger.log_err(None, format!("Unknown autoproxy mode: {other}")).await;
@@ -104,7 +110,7 @@ impl<'system> SeancePlugin<'system> for Autoproxy {
                 let current_state = {self.current_state.lock().await.clone()};
                 match current_state {
                     InnerState::Off => return,
-                    InnerState::Member { current_member } => return,
+                    InnerState::Member { current_member: _ } => return,
                     InnerState::LatchInactive => {
                         logger.log_line(Some(member.discord_token.clone()), "Setting autoproxy latch".to_string()).await;
                         {*self.current_state.lock().await = InnerState::LatchActive {