gameServer2/src/server/handlers/lobby.rs
changeset 12147 03ccb89820f3
child 12852 bd35cb2302b3
equal deleted inserted replaced
12146:8d8fb85bc09c 12147:03ccb89820f3
       
     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: mio::Token, poll: &mio::Poll, message: HWProtocolMessage) {
       
    10     match message {
       
    11         HWProtocolMessage::Chat(msg) => {
       
    12             let chat_msg = ChatMsg(&server.clients[token].nick, &msg).to_raw_protocol();
       
    13             server.react(token, poll, vec![SendAllButMe(chat_msg)]);
       
    14         },
       
    15         HWProtocolMessage::CreateRoom(name, password) => {
       
    16             let room_exists = server.rooms.iter().find(|&r| r.name == name).is_some();
       
    17             if room_exists {
       
    18                 server.react(token, poll, vec![Warn("Room exists".to_string())]);
       
    19             } else {
       
    20                 let flags_msg = ClientFlags("+hr", &[&server.clients[token].nick]).to_raw_protocol();
       
    21                 {
       
    22                     let c = &mut server.clients[token];
       
    23                     c.is_master = true;
       
    24                     c.is_ready = true;
       
    25                     c.is_joined_mid_game = false;
       
    26                 }
       
    27                 server.react(token, poll, vec![
       
    28                     AddRoom(name, password)
       
    29                     , SendMe(flags_msg)
       
    30                     ]);
       
    31             }
       
    32         },
       
    33         HWProtocolMessage::Join(name, password) => {
       
    34 
       
    35         },
       
    36         HWProtocolMessage::List => warn!("Deprecated LIST message received"),
       
    37         _ => warn!("Incorrect command in lobby state"),
       
    38     }
       
    39 }