159 response.add(update_msg.send_all().with_protocol(room.protocol_number)); |
159 response.add(update_msg.send_all().with_protocol(room.protocol_number)); |
160 |
160 |
161 response.add(ClientFlags(remove_flags(&[Flags::InRoom]), vec![client.nick.clone()]).send_all()); |
161 response.add(ClientFlags(remove_flags(&[Flags::InRoom]), vec![client.nick.clone()]).send_all()); |
162 } |
162 } |
163 |
163 |
|
164 pub fn change_master( |
|
165 server: &mut HWServer, |
|
166 from_id: ClientId, |
|
167 to_id: ClientId, |
|
168 room_id: RoomId, |
|
169 response: &mut Response, |
|
170 ) { |
|
171 server.clients[from_id].set_is_master(false); |
|
172 server.clients[to_id].set_is_master(true); |
|
173 server.rooms[room_id].master_id = Some(to_id); |
|
174 |
|
175 response.add( |
|
176 ClientFlags( |
|
177 add_flags(&[Flags::RoomMaster]), |
|
178 vec![server.clients[to_id].nick.clone()], |
|
179 ) |
|
180 .send_all() |
|
181 .in_room(room_id), |
|
182 ); |
|
183 response.add( |
|
184 ClientFlags( |
|
185 remove_flags(&[Flags::RoomMaster]), |
|
186 vec![server.clients[from_id].nick.clone()], |
|
187 ) |
|
188 .send_all() |
|
189 .in_room(room_id), |
|
190 ); |
|
191 } |
|
192 |
164 pub fn exit_room(server: &mut HWServer, client_id: ClientId, response: &mut Response, msg: &str) { |
193 pub fn exit_room(server: &mut HWServer, client_id: ClientId, response: &mut Response, msg: &str) { |
165 let client = &mut server.clients[client_id]; |
194 let client = &mut server.clients[client_id]; |
166 |
195 |
167 if let Some(room_id) = client.room_id { |
196 if let Some(room_id) = client.room_id { |
168 let room = &mut server.rooms[room_id]; |
197 let room = &mut server.rooms[room_id]; |