4 use server::actions::Action; |
4 use server::actions::Action; |
5 use server::actions::Action::*; |
5 use server::actions::Action::*; |
6 use protocol::messages::HWProtocolMessage; |
6 use protocol::messages::HWProtocolMessage; |
7 use protocol::messages::HWServerMessage::*; |
7 use protocol::messages::HWServerMessage::*; |
8 |
8 |
9 pub fn handle(server: &mut HWServer, token: mio::Token, poll: &mio::Poll, message: HWProtocolMessage) { |
9 pub fn handle(server: &mut HWServer, token: usize, poll: &mio::Poll, message: HWProtocolMessage) { |
10 match message { |
10 match message { |
11 HWProtocolMessage::Chat(msg) => { |
11 HWProtocolMessage::Chat(msg) => { |
12 let chat_msg = ChatMsg(&server.clients[token].nick, &msg).to_raw_protocol(); |
12 let chat_msg = ChatMsg(&server.clients[token].nick, &msg).to_raw_protocol(); |
13 server.react(token, poll, vec![SendAllButMe(chat_msg)]); |
13 server.react(token, poll, vec![SendAllButMe(chat_msg)]); |
14 }, |
14 }, |
15 HWProtocolMessage::CreateRoom(name, password) => { |
15 HWProtocolMessage::CreateRoom(name, password) => { |
16 let room_exists = server.rooms.iter().find(|&r| r.name == name).is_some(); |
16 let room_exists = server.rooms.iter().find(|&(_, r)| r.name == name).is_some(); |
17 if room_exists { |
17 if room_exists { |
18 server.react(token, poll, vec![Warn("Room exists".to_string())]); |
18 server.react(token, poll, vec![Warn("Room exists".to_string())]); |
19 } else { |
19 } else { |
20 let flags_msg = ClientFlags("+hr", &[&server.clients[token].nick]).to_raw_protocol(); |
20 let flags_msg = ClientFlags("+hr", &[&server.clients[token].nick]).to_raw_protocol(); |
21 { |
21 { |