41 let nicks = server.clients.iter() |
41 let nicks = server.clients.iter() |
42 .filter(|(_, c)| c.room_id == room_id) |
42 .filter(|(_, c)| c.room_id == room_id) |
43 .map(|(_, c)| c.nick.clone()) |
43 .map(|(_, c)| c.nick.clone()) |
44 .collect(); |
44 .collect(); |
45 let c = &mut server.clients[client_id]; |
45 let c = &mut server.clients[client_id]; |
46 actions = match room { |
46 |
47 None => vec![Warn("No such room.".to_string())], |
47 actions = if let Some((_, r)) = room { |
48 Some((_, r)) => { |
48 if c.protocol_number != r.protocol_number { |
49 if c.protocol_number != r.protocol_number { |
49 vec![Warn("Room version incompatible to your Hedgewars version!".to_string())] |
50 vec![Warn("Room version incompatible to your Hedgewars version!".to_string())] |
50 } else { |
51 } else { |
51 vec![MoveToRoom(r.id), |
52 vec![MoveToRoom(r.id), |
52 RoomJoined(nicks).send_self().action()] |
53 RoomJoined(nicks).send_self().action()] |
|
54 } |
|
55 } |
53 } |
|
54 } else { |
|
55 vec![Warn("No such room.".to_string())] |
56 }; |
56 }; |
57 } |
57 } |
58 server.react(client_id, actions); |
58 server.react(client_id, actions); |
59 }, |
59 }, |
60 List => warn!("Deprecated LIST message received"), |
60 List => warn!("Deprecated LIST message received"), |