From 27d80c04d6c559afa7b6b398c58f64b255b49e37 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 1 Aug 2020 00:26:39 +0100 Subject: [PATCH] reset player accesses --- src/cmdlistener.rs | 7 ++++++- src/commands.rs | 2 ++ src/global.rs | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/cmdlistener.rs b/src/cmdlistener.rs index 629c5ce2..736c9bb8 100644 --- a/src/cmdlistener.rs +++ b/src/cmdlistener.rs @@ -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); diff --git a/src/commands.rs b/src/commands.rs index e0887026..7ee9b17e 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -20,6 +20,7 @@ pub enum MgmtGameInstruction { // todo: RemovePiece AddPlayer(PlayerState), RemovePlayer(PlayerId), + ResetPlayerAccesses { players: Vec }, } #[derive(Debug,Serialize,Deserialize)] @@ -34,6 +35,7 @@ pub enum MgmtResponse { pub enum MgmtGameResult { Fine { }, AddPlayer { player: PlayerId }, + PlayerAccessTokens { tokens: Vec }, } #[derive(Debug,Serialize,Deserialize)] diff --git a/src/global.rs b/src/global.rs index 79944ddc..bd4eb50f 100644 --- a/src/global.rs +++ b/src/global.rs @@ -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 { // tokens can't persist unless game is never destroyed ? // so a game is like a tables, and persistent -- 2.30.2