gameServer2/src/server/handlers/inroom.rs
changeset 13480 fb37745c5bca
parent 13478 d79795acaa73
child 13520 1ee192f13456
equal deleted inserted replaced
13479:38f9097b6bbc 13480:fb37745c5bca
    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()])