69 |
69 |
70 fn is_msg_timed(msg: &[u8]) -> bool { |
70 fn is_msg_timed(msg: &[u8]) -> bool { |
71 msg.get(1).filter(|t| !NON_TIMED_MESSAGES.contains(t)).is_some() |
71 msg.get(1).filter(|t| !NON_TIMED_MESSAGES.contains(t)).is_some() |
72 } |
72 } |
73 |
73 |
|
74 fn voting_description(kind: &VoteType) -> String { |
|
75 format!("New voting started: {}", match kind { |
|
76 VoteType::Kick(nick) => format!("kick {}", nick), |
|
77 VoteType::Map(name) => format!("map {}", name.as_ref().unwrap()), |
|
78 VoteType::Pause => "pause".to_string(), |
|
79 VoteType::NewSeed => "new seed".to_string(), |
|
80 VoteType::HedgehogsPerTeam(number) => format!("hedgehogs per team: {}", number) |
|
81 }) |
|
82 } |
|
83 |
74 pub fn handle(server: &mut HWServer, client_id: ClientId, message: HWProtocolMessage) { |
84 pub fn handle(server: &mut HWServer, client_id: ClientId, message: HWProtocolMessage) { |
75 use protocol::messages::HWProtocolMessage::*; |
85 use protocol::messages::HWProtocolMessage::*; |
76 match message { |
86 match message { |
77 Part(None) => server.react(client_id, vec![ |
87 Part(None) => server.react(client_id, vec![ |
78 MoveToLobby("part".to_string())]), |
88 MoveToLobby("part".to_string())]), |
302 } |
312 } |
303 }, |
313 }, |
304 }; |
314 }; |
305 match error { |
315 match error { |
306 None => { |
316 None => { |
|
317 let msg = voting_description(&kind); |
307 let voting = Voting::new(kind, server.room_clients(client_id)); |
318 let voting = Voting::new(kind, server.room_clients(client_id)); |
308 server.room(client_id).unwrap().voting = Some(voting); |
319 server.room(client_id).unwrap().voting = Some(voting); |
309 server.react(client_id, vec![ |
320 server.react(client_id, vec![ |
310 server_chat("New voting started: ") |
321 server_chat(&msg).send_all().in_room(room_id).action(), |
311 .send_all().in_room(room_id).action(), |
|
312 AddVote{ vote: true, is_forced: false}]); |
322 AddVote{ vote: true, is_forced: false}]); |
313 } |
323 } |
314 Some(msg) => { |
324 Some(msg) => { |
315 server.react(client_id, vec![ |
325 server.react(client_id, vec![ |
316 server_chat(msg).send_self().action()]) |
326 server_chat(msg).send_self().action()]) |