rust/hedgewars-server/src/handlers/inroom.rs
changeset 15080 e935b1ad23f3
parent 15079 c5a6e8566425
child 15116 1e45db229f9f
equal deleted inserted replaced
15079:c5a6e8566425 15080:e935b1ad23f3
     1 use mio;
     1 use mio;
     2 
     2 
     3 use super::common::rnd_reply;
     3 use super::common::rnd_reply;
     4 use crate::utils::to_engine_msg;
     4 use crate::utils::to_engine_msg;
     5 use crate::{
     5 use crate::{
     6     protocol::messages::{
       
     7         add_flags, remove_flags, server_chat, HWProtocolMessage, HWServerMessage::*,
       
     8         ProtocolFlags as Flags,
       
     9     },
       
    10     core::{
     6     core::{
    11         server::HWServer,
     7         room::{HwRoom, RoomFlags, MAX_TEAMS_IN_ROOM},
       
     8         server::HwServer,
    12         types,
     9         types,
    13         types::{ClientId, GameCfg, RoomId, VoteType, Voting, MAX_HEDGEHOGS_PER_TEAM},
    10         types::{ClientId, GameCfg, RoomId, VoteType, Voting, MAX_HEDGEHOGS_PER_TEAM},
    14         room::{HWRoom, RoomFlags, MAX_TEAMS_IN_ROOM},
    11     },
       
    12     protocol::messages::{
       
    13         add_flags, remove_flags, server_chat, HwProtocolMessage, HwServerMessage::*,
       
    14         ProtocolFlags as Flags,
    15     },
    15     },
    16     utils::is_name_illegal,
    16     utils::is_name_illegal,
    17 };
    17 };
    18 use base64::{decode, encode};
    18 use base64::{decode, encode};
    19 use log::*;
    19 use log::*;
    91             VoteType::HedgehogsPerTeam(number) => format!("hedgehogs per team: {}", number),
    91             VoteType::HedgehogsPerTeam(number) => format!("hedgehogs per team: {}", number),
    92         }
    92         }
    93     )
    93     )
    94 }
    94 }
    95 
    95 
    96 fn room_message_flag(msg: &HWProtocolMessage) -> RoomFlags {
    96 fn room_message_flag(msg: &HwProtocolMessage) -> RoomFlags {
    97     use crate::protocol::messages::HWProtocolMessage::*;
    97     use crate::protocol::messages::HwProtocolMessage::*;
    98     match msg {
    98     match msg {
    99         ToggleRestrictJoin => RoomFlags::RESTRICTED_JOIN,
    99         ToggleRestrictJoin => RoomFlags::RESTRICTED_JOIN,
   100         ToggleRestrictTeams => RoomFlags::RESTRICTED_TEAM_ADD,
   100         ToggleRestrictTeams => RoomFlags::RESTRICTED_TEAM_ADD,
   101         ToggleRegisteredOnly => RoomFlags::RESTRICTED_UNREGISTERED_PLAYERS,
   101         ToggleRegisteredOnly => RoomFlags::RESTRICTED_UNREGISTERED_PLAYERS,
   102         _ => RoomFlags::empty(),
   102         _ => RoomFlags::empty(),
   103     }
   103     }
   104 }
   104 }
   105 
   105 
   106 pub fn handle(
   106 pub fn handle(
   107     server: &mut HWServer,
   107     server: &mut HwServer,
   108     client_id: ClientId,
   108     client_id: ClientId,
   109     response: &mut super::Response,
   109     response: &mut super::Response,
   110     room_id: RoomId,
   110     room_id: RoomId,
   111     message: HWProtocolMessage,
   111     message: HwProtocolMessage,
   112 ) {
   112 ) {
   113     let client = &mut server.clients[client_id];
   113     let client = &mut server.clients[client_id];
   114     let room = &mut server.rooms[room_id];
   114     let room = &mut server.rooms[room_id];
   115 
   115 
   116     use crate::protocol::messages::HWProtocolMessage::*;
   116     use crate::protocol::messages::HwProtocolMessage::*;
   117     match message {
   117     match message {
   118         Part(msg) => {
   118         Part(msg) => {
   119             let msg = match msg {
   119             let msg = match msg {
   120                 Some(s) => format!("part: {}", s),
   120                 Some(s) => format!("part: {}", s),
   121                 None => "part".to_string(),
   121                 None => "part".to_string(),