|
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"), |