1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use crate::events::ApplicableEvent;
use crate::players::Player;
use crate::universe_group::UniverseGroup;
use serde_derive::{Deserialize, Serialize};
use std::sync::Arc;
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct FullUpdatePlayerEvent {
#[serde(flatten)]
pub player: Player,
}
impl ApplicableEvent<UniverseGroup> for FullUpdatePlayerEvent {
fn apply(mut self, group: &mut UniverseGroup) {
let id = self.player.id;
self.player.connection = Arc::downgrade(&group.connection);
group.players[id.0] = Some(self.player);
}
}