rust/hedgewars-server/src/server/actions.rs
changeset 14690 f61ce544d436
parent 14689 aae29ba56aec
child 14694 25c564f77b7d
--- 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)
-            }
-        }
-    }
-}