diff options
Diffstat (limited to 'src/system/plugin/autoproxy.rs')
-rw-r--r-- | src/system/plugin/autoproxy.rs | 10 |
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 { |