1 use super::{common::rnd_reply, strings::*}; |
1 use super::{common::rnd_reply, strings::*}; |
|
2 use crate::handlers::actions::ToPendingMessage; |
2 use crate::{ |
3 use crate::{ |
3 core::{ |
4 core::{ |
4 client::HwClient, |
5 client::HwClient, |
5 server::{AccessError, CreateRoomError, HwServer, JoinRoomError}, |
6 server::{AccessError, CreateRoomError, HwServer, JoinRoomError}, |
6 types::{ClientId, ServerVar}, |
7 types::ClientId, |
7 }, |
8 }, |
8 protocol::messages::{ |
9 utils::is_name_illegal, |
|
10 }; |
|
11 use hedgewars_network_protocol::{ |
|
12 messages::{ |
9 add_flags, remove_flags, server_chat, HwProtocolMessage, HwServerMessage::*, |
13 add_flags, remove_flags, server_chat, HwProtocolMessage, HwServerMessage::*, |
10 ProtocolFlags as Flags, |
14 ProtocolFlags as Flags, |
11 }, |
15 }, |
12 utils::is_name_illegal, |
16 types::ServerVar, |
13 }; |
17 }; |
14 use log::*; |
18 use log::*; |
15 use std::{collections::HashSet, convert::identity}; |
19 use std::{collections::HashSet, convert::identity}; |
16 |
20 |
17 pub fn handle( |
21 pub fn handle( |
18 server: &mut HwServer, |
22 server: &mut HwServer, |
19 client_id: ClientId, |
23 client_id: ClientId, |
20 response: &mut super::Response, |
24 response: &mut super::Response, |
21 message: HwProtocolMessage, |
25 message: HwProtocolMessage, |
22 ) { |
26 ) { |
23 use crate::protocol::messages::HwProtocolMessage::*; |
27 use hedgewars_network_protocol::messages::HwProtocolMessage::*; |
24 |
28 |
25 match message { |
29 match message { |
26 CreateRoom(name, password) => match server.create_room(client_id, name, password) { |
30 CreateRoom(name, password) => match server.create_room(client_id, name, password) { |
27 Err(CreateRoomError::InvalidName) => response.warn(ILLEGAL_ROOM_NAME), |
31 Err(CreateRoomError::InvalidName) => response.warn(ILLEGAL_ROOM_NAME), |
28 Err(CreateRoomError::AlreadyExists) => response.warn(ROOM_EXISTS), |
32 Err(CreateRoomError::AlreadyExists) => response.warn(ROOM_EXISTS), |