237 response.add(RoomJoined(vec![nick.clone()]).send_all().in_room(room_id)); |
237 response.add(RoomJoined(vec![nick.clone()]).send_all().in_room(room_id)); |
238 response.add(ClientFlags(add_flags(&[Flags::InRoom]), vec![nick]).send_all()); |
238 response.add(ClientFlags(add_flags(&[Flags::InRoom]), vec![nick]).send_all()); |
239 let nicks = server.collect_nicks(|(_, c)| c.room_id == Some(room_id)); |
239 let nicks = server.collect_nicks(|(_, c)| c.room_id == Some(room_id)); |
240 response.add(RoomJoined(nicks).send_self()); |
240 response.add(RoomJoined(nicks).send_self()); |
241 |
241 |
|
242 get_room_teams(server, room_id, client_id, response); |
|
243 |
242 let room = &server.rooms[room_id]; |
244 let room = &server.rooms[room_id]; |
|
245 get_room_config(room, client_id, response); |
|
246 |
|
247 let mut flag_selectors = [ |
|
248 ( |
|
249 Flags::RoomMaster, |
|
250 server.collect_nicks(|(_, c)| c.is_master()), |
|
251 ), |
|
252 (Flags::Ready, server.collect_nicks(|(_, c)| c.is_ready())), |
|
253 (Flags::InGame, server.collect_nicks(|(_, c)| c.is_in_game())), |
|
254 ]; |
|
255 |
|
256 for (flag, nicks) in &mut flag_selectors { |
|
257 response.add(ClientFlags(add_flags(&[*flag]), replace(nicks, vec![])).send_self()); |
|
258 } |
243 |
259 |
244 if !room.greeting.is_empty() { |
260 if !room.greeting.is_empty() { |
245 response.add( |
261 response.add( |
246 ChatMsg { |
262 ChatMsg { |
247 nick: "[greeting]".to_string(), |
263 nick: "[greeting]".to_string(), |