gameServer2/src/server/handlers.rs
changeset 14420 06672690d71b
parent 14419 6843c4551cde
child 14421 96624a6cdb93
equal deleted inserted replaced
14419:6843c4551cde 14420:06672690d71b
     1 use mio;
       
     2 use std::{io, io::Write};
       
     3 
       
     4 use super::{
       
     5     core::HWServer,
       
     6     actions::{Action, Action::*},
       
     7     coretypes::ClientId
       
     8 };
       
     9 use crate::{
       
    10     protocol::messages::{
       
    11         HWProtocolMessage,
       
    12         HWServerMessage::*
       
    13     }
       
    14 };
       
    15 use log::*;
       
    16 
       
    17 mod loggingin;
       
    18 mod lobby;
       
    19 mod inroom;
       
    20 mod common;
       
    21 mod checker;
       
    22 
       
    23 pub fn handle(server: &mut HWServer, client_id: ClientId, message: HWProtocolMessage) {
       
    24     match message {
       
    25         HWProtocolMessage::Ping =>
       
    26             server.react(client_id, vec![Pong.send_self().action()]),
       
    27         HWProtocolMessage::Quit(Some(msg)) =>
       
    28             server.react(client_id, vec![ByeClient("User quit: ".to_string() + &msg)]),
       
    29         HWProtocolMessage::Quit(None) =>
       
    30             server.react(client_id, vec![ByeClient("User quit".to_string())]),
       
    31         HWProtocolMessage::Malformed => warn!("Malformed/unknown message"),
       
    32         HWProtocolMessage::Empty => warn!("Empty message"),
       
    33         _ => {
       
    34             match server.clients[client_id].room_id {
       
    35                 None =>
       
    36                     loggingin::handle(server, client_id, message),
       
    37                 Some(id) if id == server.lobby_id =>
       
    38                     lobby::handle(server, client_id, message),
       
    39                 Some(id) =>
       
    40                     inroom::handle(server, client_id, id, message)
       
    41             }
       
    42         },
       
    43     }
       
    44 }