diff --git a/src/main.rs b/src/main.rs index 4c19819..6f0cb04 100644 --- a/src/main.rs +++ b/src/main.rs @@ -66,9 +66,11 @@ impl AppState { (c2s_tx, s2c_rx) } - // pub sync fn set_nick(&self, peer_addr: SocketAddr, nick: &str) { - // // ... - // } + pub async fn set_nick(&self, peer_addr: SocketAddr, nick: &str) { + if let Some(client) = self.clients.write().await.get_mut(&peer_addr) { + client.nick = Some(nick.to_string()); + } + } // clients still needs mod/op status stuff @@ -181,7 +183,12 @@ async fn handle( ) -> Result> { match msg.command()? { "CAP" => { - let _ = state.send(peer_addr, Message::from_str("NONE")?).await; + state.send(peer_addr, Message::from_str("NONE")?).await?; + } + "NICK" => { + state + .set_nick(peer_addr, msg.params()?.next().unwrap()) + .await; } _ => { return Err(format!("Unknown Command: {:?}", msg.command()?).into());