--- a/gameServer2/src/server/actions.rs Fri Jan 27 23:03:31 2017 +0300
+++ b/gameServer2/src/server/actions.rs Sat Feb 04 19:52:38 2017 +0300
@@ -3,6 +3,7 @@
use std::io;
use super::server::HWServer;
+use super::server::HWRoom;
use protocol::messages::HWProtocolMessage;
use protocol::messages::HWServerMessage::*;
use super::handlers;
@@ -15,6 +16,8 @@
ReactProtocolMessage(HWProtocolMessage),
CheckRegistered,
JoinLobby,
+ AddRoom(String, Option<String>),
+ Warn(String),
}
use self::Action::*;
@@ -49,6 +52,8 @@
]);
},
JoinLobby => {
+ server.clients[token].room_id = Some(server.lobby_id);
+
let joined_msg;
{
let mut lobby_nicks: Vec<&str> = Vec::new();
@@ -60,12 +65,23 @@
joined_msg = LobbyJoined(&lobby_nicks).to_raw_protocol();
}
let everyone_msg = LobbyJoined(&[&server.clients[token].nick]).to_raw_protocol();
- server.clients[token].room_id = Some(server.lobby_id);
server.react(token, poll, vec![
SendAllButMe(everyone_msg),
SendMe(joined_msg),
]);
},
+ AddRoom(name, password) => {
+ let room_id = server.rooms.insert(HWRoom::new()).ok().expect("Cannot add room");
+ let r = &mut server.rooms[room_id];
+ r.name = name;
+ r.password = password;
+ r.id = room_id.clone();
+ r.ready_players_number = 1;
+ server.clients[token].room_id = Some(room_id);
+ },
+ Warn(msg) => {
+ run_action(server, token, poll, SendMe(Warning(&msg).to_raw_protocol()));
+ }
//_ => unimplemented!(),
}
}