chiark / gitweb /
Break out prepare_set_player_update
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 12 Jun 2022 23:01:46 +0000 (00:01 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 12 Jun 2022 23:08:16 +0000 (00:08 +0100)
We'll want this for nick updates.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/global.rs

index 3a8b6f195a5d2fac7bcd7334a7129ae16559d5f4..13106c12a4cc6accfea80fe02f03321a013c5d0e 100644 (file)
@@ -713,13 +713,7 @@ impl<'ig> InstanceGuard<'ig> {
     self.c.g.iplayers.insert(player, record);
 
     let update = (||{
-      let new_info_pane = Arc::new(self.player_info_pane()?);
-
-      let update = PreparedUpdateEntry::SetPlayer {
-        player, new_info_pane,
-        data: DataLoadPlayer::from_player(self, player),
-      };
-
+      let update = self.prepare_set_player_update(player)?;
       self.save_game_now()?;
       self.save_aux_now()?;
       Ok::<_,InternalError>(update)
@@ -743,6 +737,16 @@ impl<'ig> InstanceGuard<'ig> {
     }
   }
 
+  #[throws(IE)]
+  pub fn prepare_set_player_update(&self, player: PlayerId)
+                                   -> PreparedUpdateEntry {
+    let new_info_pane = Arc::new(self.player_info_pane()?);
+    PreparedUpdateEntry::SetPlayer {
+      player, new_info_pane,
+      data: DataLoadPlayer::from_player(self, player),
+    }
+  }
+
   pub fn remove_clients(&mut self,
                         players: &HashSet<PlayerId>,
                         signal: ErrorSignaledViaUpdate<PUE_P, String>) {