gameServer2/src/server/actions.rs
changeset 12852 bd35cb2302b3
parent 12148 8591375271b8
child 12853 a9d105dc5c95
equal deleted inserted replaced
12851:4ffab41560c5 12852:bd35cb2302b3
    20     Warn(String),
    20     Warn(String),
    21 }
    21 }
    22 
    22 
    23 use self::Action::*;
    23 use self::Action::*;
    24 
    24 
    25 pub fn run_action(server: &mut HWServer, token: mio::Token, poll: &mio::Poll, action: Action) {
    25 pub fn run_action(server: &mut HWServer, token: usize, poll: &mio::Poll, action: Action) {
    26     match action {
    26     match action {
    27         SendMe(msg) =>
    27         SendMe(msg) =>
    28             server.send(token, &msg),
    28             server.send(token, &msg),
    29         SendAllButMe(msg) => {
    29         SendAllButMe(msg) => {
    30             for c in server.clients.iter_mut() {
    30             for (i, c) in server.clients.iter_mut() {
    31                 if c.id != token {
    31                 if c.id != token {
    32                     c.send_string(&msg)
    32                     c.send_string(&msg)
    33                 }
    33                 }
    34             }
    34             }
    35         },
    35         },
    55             server.clients[token].room_id = Some(server.lobby_id);
    55             server.clients[token].room_id = Some(server.lobby_id);
    56 
    56 
    57             let joined_msg;
    57             let joined_msg;
    58             {
    58             {
    59                 let mut lobby_nicks: Vec<&str> = Vec::new();
    59                 let mut lobby_nicks: Vec<&str> = Vec::new();
    60                 for c in server.clients.iter() {
    60                 for (_, c) in server.clients.iter() {
    61                     if c.room_id.is_some() {
    61                     if c.room_id.is_some() {
    62                         lobby_nicks.push(&c.nick);
    62                         lobby_nicks.push(&c.nick);
    63                     }
    63                     }
    64                 }
    64                 }
    65                 joined_msg = LobbyJoined(&lobby_nicks).to_raw_protocol();
    65                 joined_msg = LobbyJoined(&lobby_nicks).to_raw_protocol();
    69                 SendAllButMe(everyone_msg),
    69                 SendAllButMe(everyone_msg),
    70                 SendMe(joined_msg),
    70                 SendMe(joined_msg),
    71                 ]);
    71                 ]);
    72         },
    72         },
    73         AddRoom(name, password) => {
    73         AddRoom(name, password) => {
    74             let room_id = server.rooms.insert(HWRoom::new()).ok().expect("Cannot add room");
    74             let room_id = server.rooms.insert(HWRoom::new());
    75             {
    75             {
    76                 let r = &mut server.rooms[room_id];
    76                 let r = &mut server.rooms[room_id];
    77                 let c = &mut server.clients[token];
    77                 let c = &mut server.clients[token];
    78                 r.name = name;
    78                 r.name = name;
    79                 r.password = password;
    79                 r.password = password;