equal
deleted
inserted
replaced
62 ); |
62 ); |
63 } |
63 } |
64 JoinRoom(name, _password) => { |
64 JoinRoom(name, _password) => { |
65 let room = server.rooms.iter().find(|(_, r)| r.name == name); |
65 let room = server.rooms.iter().find(|(_, r)| r.name == name); |
66 let room_id = room.map(|(_, r)| r.id); |
66 let room_id = room.map(|(_, r)| r.id); |
67 let nicks = server |
67 |
68 .clients |
|
69 .iter() |
|
70 .filter(|(_, c)| c.room_id == room_id) |
|
71 .map(|(_, c)| c.nick.clone()) |
|
72 .collect(); |
|
73 let client = &mut server.clients[client_id]; |
68 let client = &mut server.clients[client_id]; |
74 |
69 |
75 if let Some((_, room)) = room { |
70 if let Some((_, room)) = room { |
76 if client.protocol_number != room.protocol_number { |
71 if client.protocol_number != room.protocol_number { |
77 response.add( |
72 response.add( |
91 let nick = client.nick.clone(); |
86 let nick = client.nick.clone(); |
92 server.move_to_room(client_id, room_id); |
87 server.move_to_room(client_id, room_id); |
93 |
88 |
94 response.add(RoomJoined(vec![nick.clone()]).send_all().in_room(room_id)); |
89 response.add(RoomJoined(vec![nick.clone()]).send_all().in_room(room_id)); |
95 response.add(ClientFlags(add_flags(&[Flags::InRoom]), vec![nick]).send_all()); |
90 response.add(ClientFlags(add_flags(&[Flags::InRoom]), vec![nick]).send_all()); |
|
91 let nicks = server.collect_nicks(|(_, c)| c.room_id == Some(room_id)); |
96 response.add(RoomJoined(nicks).send_self()); |
92 response.add(RoomJoined(nicks).send_self()); |
97 |
93 |
98 let room = &server.rooms[room_id]; |
94 let room = &server.rooms[room_id]; |
99 |
95 |
100 if !room.greeting.is_empty() { |
96 if !room.greeting.is_empty() { |