simplify leaving lobby packet sending

This commit is contained in:
jake 2020-04-24 22:22:19 -06:00
parent 628ad056b4
commit 2886f537ba

View File

@ -27,16 +27,19 @@ pub fn create_room(id: ClientId,
let join_room = builder::room::join_room(id, clients, client_location, room_id, &room)?; let join_room = builder::room::join_room(id, clients, client_location, room_id, &room)?;
rooms[room_id.0] = Some(room); rooms[room_id.0] = Some(room);
let leader = client_location.get_area_leader(area); let mut result: Box<dyn Iterator<Item=(ClientId, SendShipPacket)> + Send> = Box::new(
let result = vec![(id, SendShipPacket::JoinRoom(join_room))].into_iter(); vec![(id, SendShipPacket::JoinRoom(join_room))].into_iter()
match leader { );
Ok(leader) => Ok(Box::new(result.chain(lobby_neighbors if let Ok(leader) = client_location.get_area_leader(area) {
.into_iter() let leave_lobby = SendShipPacket::LeaveLobby(LeaveLobby::new(area_client.local_client.id(), leader.local_client.id()));
.map(move |c| { result = Box::new(result.chain(lobby_neighbors
(c.client, SendShipPacket::LeaveLobby(LeaveLobby::new(area_client.local_client.id(), leader.local_client.id()))) .into_iter()
})))), .map(move |c| {
Err(_) => Ok(Box::new(result)) (c.client, leave_lobby.clone())
})));
} }
Ok(result)
} }
pub fn room_name_request(id: ClientId, pub fn room_name_request(id: ClientId,