equal
deleted
inserted
replaced
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; |