rust/hedgewars-server/src/handlers/common.rs
changeset 15804 747278149393
parent 15800 6af892a0a4b8
child 15880 3360cc4c162d
equal deleted inserted replaced
15803:b06b33cf0a89 15804:747278149393
       
     1 use super::{
       
     2     actions::{Destination, DestinationGroup},
       
     3     Response,
       
     4 };
       
     5 use crate::handlers::actions::ToPendingMessage;
     1 use crate::{
     6 use crate::{
     2     core::{
     7     core::{
     3         client::HwClient,
     8         client::HwClient,
     4         room::HwRoom,
     9         room::HwRoom,
     5         server::{
    10         server::{
     6             EndGameResult, HwRoomControl, HwServer, JoinRoomError, LeaveRoomResult, StartGameError,
    11             EndGameResult, HwRoomControl, HwServer, JoinRoomError, LeaveRoomResult, StartGameError,
     7             VoteError, VoteResult,
    12             VoteError, VoteResult,
     8         },
    13         },
     9         types::{ClientId, GameCfg, RoomId, TeamInfo, Vote, VoteType, MAX_HEDGEHOGS_PER_TEAM},
    14         types::{ClientId, RoomId},
    10     },
    15     },
    11     protocol::messages::{
    16     utils::to_engine_msg,
       
    17 };
       
    18 use hedgewars_network_protocol::{
       
    19     messages::{
    12         add_flags, remove_flags, server_chat,
    20         add_flags, remove_flags, server_chat,
    13         HwProtocolMessage::{self, Rnd},
    21         HwProtocolMessage::{self, Rnd},
    14         HwServerMessage::{self, *},
    22         HwServerMessage::{self, *},
    15         ProtocolFlags as Flags,
    23         ProtocolFlags as Flags,
    16     },
    24     },
    17     utils::to_engine_msg,
    25     types::{GameCfg, RoomConfig, TeamInfo, Vote, VoteType, MAX_HEDGEHOGS_PER_TEAM},
    18 };
    26 };
    19 
       
    20 use super::{
       
    21     actions::{Destination, DestinationGroup},
       
    22     Response,
       
    23 };
       
    24 
       
    25 use crate::core::types::RoomConfig;
       
    26 use rand::{self, seq::SliceRandom, thread_rng, Rng};
    27 use rand::{self, seq::SliceRandom, thread_rng, Rng};
    27 use std::{iter::once, mem::replace};
    28 use std::{iter::once, mem::replace};
    28 
    29 
    29 pub fn rnd_reply(options: &[String]) -> HwServerMessage {
    30 pub fn rnd_reply(options: &[String]) -> HwServerMessage {
    30     let mut rng = thread_rng();
    31     let mut rng = thread_rng();
   642 
   643 
   643 #[cfg(test)]
   644 #[cfg(test)]
   644 mod tests {
   645 mod tests {
   645     use super::*;
   646     use super::*;
   646     use crate::handlers::actions::PendingMessage;
   647     use crate::handlers::actions::PendingMessage;
   647     use crate::protocol::messages::HwServerMessage::ChatMsg;
   648     use hedgewars_network_protocol::messages::HwServerMessage::ChatMsg;
   648 
   649 
   649     fn reply2string(r: HwServerMessage) -> String {
   650     fn reply2string(r: HwServerMessage) -> String {
   650         match r {
   651         match r {
   651             ChatMsg { msg: p, .. } => String::from(p),
   652             ChatMsg { msg: p, .. } => String::from(p),
   652             _ => panic!("expected a ChatMsg"),
   653             _ => panic!("expected a ChatMsg"),