rust/hedgewars-server/src/server/handlers/common.rs
changeset 14787 0e64acbc3f8b
parent 14785 a1077e8d26f4
child 14789 18240b308505
equal deleted inserted replaced
14786:8ecdb5c6bb2a 14787:0e64acbc3f8b
   189         .send_all()
   189         .send_all()
   190         .in_room(room_id),
   190         .in_room(room_id),
   191     );
   191     );
   192 }
   192 }
   193 
   193 
       
   194 pub fn enter_room(
       
   195     server: &mut HWServer,
       
   196     client_id: ClientId,
       
   197     room_id: RoomId,
       
   198     response: &mut Response,
       
   199 ) {
       
   200     let nick = server.clients[client_id].nick.clone();
       
   201     server.move_to_room(client_id, room_id);
       
   202 
       
   203     response.add(RoomJoined(vec![nick.clone()]).send_all().in_room(room_id));
       
   204     response.add(ClientFlags(add_flags(&[Flags::InRoom]), vec![nick]).send_all());
       
   205     let nicks = server.collect_nicks(|(_, c)| c.room_id == Some(room_id));
       
   206     response.add(RoomJoined(nicks).send_self());
       
   207 
       
   208     let room = &server.rooms[room_id];
       
   209 
       
   210     if !room.greeting.is_empty() {
       
   211         response.add(
       
   212             ChatMsg {
       
   213                 nick: "[greeting]".to_string(),
       
   214                 msg: room.greeting.clone(),
       
   215             }
       
   216             .send_self(),
       
   217         );
       
   218     }
       
   219 }
       
   220 
   194 pub fn exit_room(server: &mut HWServer, client_id: ClientId, response: &mut Response, msg: &str) {
   221 pub fn exit_room(server: &mut HWServer, client_id: ClientId, response: &mut Response, msg: &str) {
   195     let client = &mut server.clients[client_id];
   222     let client = &mut server.clients[client_id];
   196 
   223 
   197     if let Some(room_id) = client.room_id {
   224     if let Some(room_id) = client.room_id {
   198         let room = &mut server.rooms[room_id];
   225         let room = &mut server.rooms[room_id];