chiark / gitweb /
reset player accesses
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 31 Jul 2020 23:26:39 +0000 (00:26 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 31 Jul 2020 23:26:39 +0000 (00:26 +0100)
src/cmdlistener.rs
src/commands.rs
src/global.rs

index 629c5ce28810a4ecdeaf4135c32d2ecfd60288df..736c9bb8bc7819af7e3d4d3c47dafa3e1f457e96 100644 (file)
@@ -264,7 +264,6 @@ fn execute(cs: &mut CommandStream, cmd: MgmtCommand) -> MgmtResponse {
       let mut g = gref.lock()?;
       execute_for_game(cs, &mut g, insns, how)?
     },
-
   }
 }
 
@@ -394,6 +393,12 @@ fn execute_game_insn(ig: &mut InstanceGuard, update: MgmtGameInstruction)
       (vec![], vec![], Fine{})
     },
 
+
+    ResetPlayerAccesses { players } => {
+      let tokens = ig.players_access_reset(&players)?;
+      (vec![], vec![], PlayerAccessTokens { tokens })
+    }
+
     AddPiece(PiecesSpec{ pos,posd,count,face,info }) => {
       let gs = &mut ig.gs;
       let count = count.unwrap_or(1);
index e08870267ad41106e52ff60789c9a58f6e4e9100..7ee9b17e5cbc401524252827b36aea7686bfb25c 100644 (file)
@@ -20,6 +20,7 @@ pub enum MgmtGameInstruction {
   // todo: RemovePiece
   AddPlayer(PlayerState),
   RemovePlayer(PlayerId),
+  ResetPlayerAccesses { players: Vec<PlayerId> },
 }
 
 #[derive(Debug,Serialize,Deserialize)]
@@ -34,6 +35,7 @@ pub enum MgmtResponse {
 pub enum MgmtGameResult {
   Fine { },
   AddPlayer { player: PlayerId },
+  PlayerAccessTokens { tokens: Vec<RawToken> },
 }
 
 #[derive(Debug,Serialize,Deserialize)]
index 79944ddc65cc719ca0eb13a29878b05805d9c94f..bd4eb50f555eae96f895cfcb7b380d5ed0b7f614 100644 (file)
@@ -429,7 +429,7 @@ impl InstanceGuard<'_> {
   }
 
   #[throws(MgmtError)]
-  pub fn player_access_reset(&mut self, players: &[PlayerId])
+  pub fn players_access_reset(&mut self, players: &[PlayerId])
                              -> Vec<RawToken> {
     // tokens can't persist unless game is never destroyed ?
     // so a game is like a tables, and persistent