diff --git a/server/src/client_management/client_manager.rs b/server/src/client_management/client_manager.rs index 326a4ce..89edea2 100644 --- a/server/src/client_management/client_manager.rs +++ b/server/src/client_management/client_manager.rs @@ -58,11 +58,11 @@ impl ClientManager { pub(crate) fn send_client_list( &mut self, ctx: &mut Context, - addr: WeakAddr, + sender: WeakAddr, ) { println!("[ClientManager] sending update to client"); use crate::client_management::client::ClientMessage::ClientList; - if let Some(to_send) = addr.upgrade() { + if let Some(to_send) = sender.upgrade() { let client_addr: Vec> = self.clients.iter().map(|(_, v)| v).cloned().collect(); @@ -89,9 +89,9 @@ impl ClientManager { pub(crate) fn send_global_messages( &self, ctx: &mut Context, - addr: WeakAddr, + sender: WeakAddr, ) { - if let Some(to_send) = addr.upgrade() { + if let Some(to_send) = sender.upgrade() { let fut = wrap_future(self.chat_manager.send(ChatManagerDataMessage::GetMessages)) .map(move |out, _a, _ctx| { if let Ok(ChatManagerDataResponse::GotMessages(res)) = out { @@ -106,14 +106,14 @@ impl ClientManager { &self, ctx: &mut Context, sender: WeakAddr, - _uuid: Uuid, + to: Uuid, content: String, ) { println!("[ClientManager] sending message to client"); let client_addr: Vec> = self.clients.iter().map(|(_, v)| v).cloned().collect(); - let collection = tokio_stream::iter(client_addr) + let collection = tokio_stream::iter(client_addr.clone()) .then(|addr| addr.send(ClientDataMessage::Details)) .map(|val| val.unwrap()) .map(|val: ClientDataResponse| { @@ -127,19 +127,19 @@ impl ClientManager { let fut = wrap_future(async move { if let Some(sender) = sender.upgrade() { - let details: ClientDataResponse = + let sender_details: ClientDataResponse = sender.send(ClientDataMessage::Details).await.unwrap(); - let from = if let Details(details) = details { + let from = if let Details(details) = sender_details { details.uuid } else { ClientDetails::default().uuid }; let client_details: Vec = collection.await; - let pos = client_details.iter().position(|i| i.uuid == from); - if pos.is_some() { - sender + let pos = client_details.iter().position(|i| i.uuid == to); + if let Some(pos) = pos { + client_addr[pos] .send(ClientMessage::ClientlySentMessage { content, from }) .await .expect("TODO: panic message"); @@ -274,12 +274,12 @@ impl Handler for ClientManager { Message, }; match msg { - Message(addr, uuid, content) => self.send_message_request(ctx, addr, uuid, content), - GlobalMessage(addr, content) => { - self.send_global_message_request(ctx, addr, content) + Message(sender, to, content) => self.send_message_request(ctx, sender, to, content), + GlobalMessage(sender, content) => { + self.send_global_message_request(ctx, sender, content) } - GetClients(addr) => self.send_client_list(ctx, addr), - GetGlobalMessages(addr) => self.send_global_messages(ctx, addr), + GetClients(sender) => self.send_client_list(ctx, sender), + GetGlobalMessages(sender) => self.send_global_messages(ctx, sender), } } }