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