diff -r 0135e64c6c66 -r c4fd2813b127 gameServer2/src/server/actions.rs --- a/gameServer2/src/server/actions.rs Wed May 16 18:22:28 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -use mio; -use std::io::Write; -use std::io; - -use super::server::HWServer; -use super::room::HWRoom; -use protocol::messages::HWProtocolMessage; -use protocol::messages::HWServerMessage; -use protocol::messages::HWServerMessage::*; -use super::handlers; - -pub enum Action { - SendMe(HWServerMessage), - SendAllButMe(HWServerMessage), - RemoveClient, - ByeClient(String), - ReactProtocolMessage(HWProtocolMessage), - CheckRegistered, - JoinLobby, - AddRoom(String, Option), - Warn(String), -} - -use self::Action::*; - -pub fn run_action(server: &mut HWServer, token: usize, action: Action) { - match action { - SendMe(msg) => - server.send_self(token, msg), - SendAllButMe(msg) => { - server.send_others(token, msg) - }, - ByeClient(msg) => { - server.react(token, vec![ - SendMe(Bye(msg)), - RemoveClient, - ]); - }, - RemoveClient => { - server.removed_clients.push(token); - if server.clients.contains(token) { - server.clients.remove(token); - } - }, - ReactProtocolMessage(msg) => - handlers::handle(server, token, msg), - CheckRegistered => - if server.clients[token].protocol_number > 0 && server.clients[token].nick != "" { - server.react(token, vec![ - JoinLobby, - ]); - }, - JoinLobby => { - server.clients[token].room_id = Some(server.lobby_id); - - let joined_msg; - { - let mut lobby_nicks = Vec::new(); - for (_, c) in server.clients.iter() { - if c.room_id.is_some() { - lobby_nicks.push(c.nick.clone()); - } - } - joined_msg = LobbyJoined(lobby_nicks); - } - let everyone_msg = LobbyJoined(vec![server.clients[token].nick.clone()]); - server.react(token, vec![ - SendAllButMe(everyone_msg), - SendMe(joined_msg), - ]); - }, - AddRoom(name, password) => { - let room_id = server.add_room();; - { - let r = &mut server.rooms[room_id]; - let c = &mut server.clients[token]; - r.name = name; - r.password = password; - r.ready_players_number = 1; - r.protocol_number = c.protocol_number; - c.room_id = Some(room_id); - } - }, - Warn(msg) => { - run_action(server, token,SendMe(Warning(msg))); - } - //_ => unimplemented!(), - } -}