summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-03-02 22:36:06 +0100
committertroido <troido@protonmail.com>2020-03-02 22:36:06 +0100
commita8d0e075613cc973b66c37510103108362fe7d3d (patch)
treeaf5aeeb98bfbd7f033a78d1f4bfca0c38320bc2c /src
parent22168c8eedac95fdfde9a536a1d1f6ddf622cfa1 (diff)
don't cache messages between reconnecting
Diffstat (limited to 'src')
-rw-r--r--src/main.rs1
-rw-r--r--src/worldmessages.rs8
2 files changed, 7 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index 5ee6183..96844d3 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -111,6 +111,7 @@ fn main() -> Result<()>{
}
Action::Leave(player) => {
world.remove_player(&player)?;
+ message_cache.remove(&player);
}
}
}
diff --git a/src/worldmessages.rs b/src/worldmessages.rs
index 1a56c55..75d8b33 100644
--- a/src/worldmessages.rs
+++ b/src/worldmessages.rs
@@ -78,11 +78,11 @@ pub struct FieldMessage {
#[derive(Debug, Clone, Default)]
pub struct MessageCache {
- pub cache: HashMap<PlayerId, WorldMessage>
+ cache: HashMap<PlayerId, WorldMessage>
}
impl MessageCache {
-
+
pub fn trim(&mut self, player: &PlayerId, msg: &mut WorldMessage){
if let Some(cached) = self.cache.get_mut(player){
msg.remove_old(cached);
@@ -91,6 +91,10 @@ impl MessageCache {
self.cache.insert(player.clone(), msg.clone());
}
}
+
+ pub fn remove(&mut self, player: &PlayerId){
+ self.cache.remove(player);
+ }
}