gameServer2/src/server/actions.rs
changeset 13422 5fb27f94fc3b
parent 13419 81e0ed105f5d
child 13423 87a6cad20c90
equal deleted inserted replaced
13421:d1368c776a4f 13422:5fb27f94fc3b
   209                     c.is_ready = false;
   209                     c.is_ready = false;
   210                     c.is_master = false;
   210                     c.is_master = false;
   211                 }
   211                 }
   212                 let flags_msg = ClientFlags("+i".to_string(), vec![c.nick.clone()]);
   212                 let flags_msg = ClientFlags("+i".to_string(), vec![c.nick.clone()]);
   213 
   213 
   214                 vec![RoomJoined(vec![c.nick.clone()]).send_all().in_room(room_id).action(),
   214                 let mut v = vec![
   215                      flags_msg.send_all().action(),
   215                     RoomJoined(vec![c.nick.clone()]).send_all().in_room(room_id).action(),
   216                      SendRoomUpdate(None)]
   216                     flags_msg.send_all().action(),
       
   217                     SendRoomUpdate(None)];
       
   218                 if !c.is_master {
       
   219                     v.push(ConfigEntry("FULLMAPCONFIG".to_string(), r.map_config())
       
   220                         .send_self().action());
       
   221                     for cfg in r.game_config().into_iter() {
       
   222                         v.push(cfg.into_server_msg().send_self().action());
       
   223                     }
       
   224                 }
       
   225                 v
   217             };
   226             };
   218             server.react(client_id, actions);
   227             server.react(client_id, actions);
   219         },
   228         },
   220         MoveToLobby(msg) => {
   229         MoveToLobby(msg) => {
   221             let mut actions = Vec::new();
   230             let mut actions = Vec::new();
   272             }
   281             }
   273             new_id.map(|id| server.clients[id].is_master = true);
   282             new_id.map(|id| server.clients[id].is_master = true);
   274             server.react(client_id, actions);
   283             server.react(client_id, actions);
   275         }
   284         }
   276         RemoveTeam(name) => {
   285         RemoveTeam(name) => {
   277             let actions = if let (c, Some(r)) = server.client_and_room(client_id) {
   286             let actions = if let (_, Some(r)) = server.client_and_room(client_id) {
   278                 r.remove_team(&name);
   287                 r.remove_team(&name);
   279                 vec![TeamRemove(name).send_all().in_room(r.id).action(),
   288                 vec![TeamRemove(name).send_all().in_room(r.id).action(),
   280                      SendRoomUpdate(None)]
   289                      SendRoomUpdate(None)]
   281             } else {
   290             } else {
   282                 Vec::new()
   291                 Vec::new()