equal
deleted
inserted
replaced
1 use mio; |
|
2 |
|
3 use server::server::HWServer; |
|
4 use server::actions::Action; |
|
5 use server::actions::Action::*; |
|
6 use protocol::messages::HWProtocolMessage; |
|
7 use protocol::messages::HWServerMessage::*; |
|
8 |
|
9 pub fn handle(server: &mut HWServer, token: usize, message: HWProtocolMessage) { |
|
10 use protocol::messages::HWProtocolMessage::*; |
|
11 match message { |
|
12 Chat(msg) => { |
|
13 let chat_msg = ChatMsg(server.clients[token].nick.clone(), msg); |
|
14 server.react(token, vec![SendAllButMe(chat_msg)]); |
|
15 }, |
|
16 CreateRoom(name, password) => { |
|
17 let room_exists = server.rooms.iter().find(|&(_, r)| r.name == name).is_some(); |
|
18 if room_exists { |
|
19 server.react(token, vec![Warn("Room exists".to_string())]); |
|
20 } else { |
|
21 let flags_msg = ClientFlags("+hr".to_string(), vec![server.clients[token].nick.clone()]); |
|
22 { |
|
23 let c = &mut server.clients[token]; |
|
24 c.is_master = true; |
|
25 c.is_ready = true; |
|
26 c.is_joined_mid_game = false; |
|
27 } |
|
28 server.react(token, vec![ |
|
29 AddRoom(name, password) |
|
30 , SendMe(flags_msg) |
|
31 ]); |
|
32 } |
|
33 }, |
|
34 Join(name, password) => { |
|
35 |
|
36 }, |
|
37 List => warn!("Deprecated LIST message received"), |
|
38 _ => warn!("Incorrect command in lobby state"), |
|
39 } |
|
40 } |
|