Err(ME::AlreadyExists)?;
}
let logentry = LogEntry {
- html: format!("The facilitator added a player xxx"),
+ html: format!("The facilitator added a player: {}",
+ htmlescape::encode_minimal(&pl.nick)),
};
let (player, logentry) = ig.player_new(pl, logentry)?;
#[allow(clippy::useless_format)] // xxx below
}),
RemovePlayer(player) => {
- ig.player_remove(player)?;
+ let old_state = ig.player_remove(player)?;
#[allow(clippy::useless_format)] // xxx below
(U{ pcs: vec![],
- log: vec![ LogEntry {
- html: format!("The facilitator removed a player xxx"),
- }],
+ log: old_state.iter().map(|pl| LogEntry {
+ html: format!("The facilitator removed a player: {}",
+ htmlescape::encode_minimal(&pl.nick)),
+ }).collect(),
raw: None},
Fine)
},
// #[throws(ServerFailure)]
// https://github.com/withoutboats/fehler/issues/62
pub fn player_remove(&mut self, oldplayer: PlayerId)
- -> Result<(),ServerFailure> {
+ -> Result<Option<PlayerState>,ServerFailure> {
// We have to filter this player out of everything
// Then save
// Then send updates
// We make a copy so if the save fails, we can put everything back
let mut players = self.c.g.gs.players.clone();
- players.remove(oldplayer);
+ let old_data = players.remove(oldplayer);
// New state
let mut gs = GameState {
);
})(); // <- No ?, ensures that IEFE is infallible (barring panics)
- Ok(())
+ Ok(old_data)
}
#[throws(MgmtError)]