--- a/rust/hedgewars-server/src/server/actions.rs Wed Feb 06 21:33:22 2019 +0300
+++ b/rust/hedgewars-server/src/server/actions.rs Wed Feb 06 22:29:02 2019 +0300
@@ -100,64 +100,3 @@
PendingMessage::send_all(self)
}
}
-
-pub enum Action {
- ChangeMaster(RoomId, Option<ClientId>),
-}
-
-use self::Action::*;
-
-pub fn run_action(server: &mut HWServer, client_id: usize, action: Action) {
- match action {
- ChangeMaster(room_id, new_id) => {
- let room_client_ids = server.room_clients(room_id);
- let new_id = if server
- .room(client_id)
- .map(|r| r.is_fixed())
- .unwrap_or(false)
- {
- new_id
- } else {
- new_id.or_else(|| room_client_ids.iter().find(|id| **id != client_id).cloned())
- };
- let new_nick = new_id.map(|id| server.clients[id].nick.clone());
-
- if let (c, Some(r)) = server.client_and_room(client_id) {
- match r.master_id {
- Some(id) if id == c.id => {
- c.set_is_master(false);
- r.master_id = None;
- /*actions.push(
- ClientFlags("-h".to_string(), vec![c.nick.clone()])
- .send_all()
- .in_room(r.id)
- .action(),
- );*/
- }
- Some(_) => unreachable!(),
- None => {}
- }
- r.master_id = new_id;
- if !r.is_fixed() && c.protocol_number < 42 {
- r.name
- .replace_range(.., new_nick.as_ref().map_or("[]", String::as_str));
- }
- r.set_join_restriction(false);
- r.set_team_add_restriction(false);
- let is_fixed = r.is_fixed();
- r.set_unregistered_players_restriction(is_fixed);
- if let Some(nick) = new_nick {
- /*actions.push(
- ClientFlags("+h".to_string(), vec![nick])
- .send_all()
- .in_room(r.id)
- .action(),
- );*/
- }
- }
- if let Some(id) = new_id {
- server.clients[id].set_is_master(true)
- }
- }
- }
-}