diff options
Diffstat (limited to 'server/src/server.rs')
-rw-r--r-- | server/src/server.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/server/src/server.rs b/server/src/server.rs index 6350d635..06b6e5fd 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -674,7 +674,22 @@ impl Server { warn!("Entity tick failed: {e}") } } - self.entities.retain(|e| !e.finished()); + self.entities.retain_mut(|e| { + if e.finished() { + e.destructor(EntityContext { + game: &mut self.game, + load_map: &mut load_map, + packet_out: &mut self.packet_out, + score_changed: &mut self.score_changed, + packet_in: &mut self.packet_loopback, + scoreboard: &self.scoreboard, + dt: 0., + }); + false + } else { + true + } + }); if let Some(map) = load_map { return Some((map, Some(Duration::from_secs(300)))); |