simplify leaving lobby packet sending
This commit is contained in:
		
							parent
							
								
									628ad056b4
								
							
						
					
					
						commit
						2886f537ba
					
				@ -27,16 +27,19 @@ pub fn create_room(id: ClientId,
 | 
			
		||||
    let join_room = builder::room::join_room(id, clients, client_location, room_id, &room)?;
 | 
			
		||||
    rooms[room_id.0] = Some(room);
 | 
			
		||||
 | 
			
		||||
    let leader = client_location.get_area_leader(area);
 | 
			
		||||
    let result = vec![(id, SendShipPacket::JoinRoom(join_room))].into_iter();
 | 
			
		||||
    match leader {
 | 
			
		||||
        Ok(leader) => Ok(Box::new(result.chain(lobby_neighbors
 | 
			
		||||
                                            .into_iter()
 | 
			
		||||
                                            .map(move |c| {
 | 
			
		||||
                                                (c.client, SendShipPacket::LeaveLobby(LeaveLobby::new(area_client.local_client.id(), leader.local_client.id())))
 | 
			
		||||
                                            })))),
 | 
			
		||||
        Err(_) => Ok(Box::new(result))
 | 
			
		||||
    let mut result: Box<dyn Iterator<Item=(ClientId, SendShipPacket)> + Send> = Box::new(
 | 
			
		||||
        vec![(id, SendShipPacket::JoinRoom(join_room))].into_iter()
 | 
			
		||||
    );
 | 
			
		||||
    if let Ok(leader) = client_location.get_area_leader(area) {
 | 
			
		||||
        let leave_lobby = SendShipPacket::LeaveLobby(LeaveLobby::new(area_client.local_client.id(), leader.local_client.id()));
 | 
			
		||||
        result = Box::new(result.chain(lobby_neighbors
 | 
			
		||||
                                       .into_iter()
 | 
			
		||||
                                       .map(move |c| {
 | 
			
		||||
                                           (c.client, leave_lobby.clone())
 | 
			
		||||
                                       })));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Ok(result)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub fn room_name_request(id: ClientId,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user