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