rust/hedgewars-server/src/server/handlers/common.rs
changeset 14784 8390d5e4e39c
parent 14783 b3adc030104b
child 14785 a1077e8d26f4
equal deleted inserted replaced
14783:b3adc030104b 14784:8390d5e4e39c
   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];