diff options
Diffstat (limited to 'src/spectate/server.rs')
-rw-r--r-- | src/spectate/server.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/spectate/server.rs b/src/spectate/server.rs index 11c4d5a..0f51c2a 100644 --- a/src/spectate/server.rs +++ b/src/spectate/server.rs @@ -1,5 +1,5 @@ use super::Config; -use crate::{game::protocol::Packet, State}; +use crate::{game::protocol::Packet, spectate::stats_loop, State}; use anyhow::{anyhow, Result}; use axum::{ extract::{ @@ -26,6 +26,7 @@ struct SpectateState { } pub async fn spectate_server(config: Config, state: Arc<State>) -> Result<()> { + spawn(stats_loop(state.clone())); let sstate = Arc::new(SpectateState { past_events: Default::default(), events: broadcast::channel(512).0, @@ -115,7 +116,8 @@ async fn broadcaster(sstate: Arc<SpectateState>, state: Arc<State>) { { let g = state.game.read().await; events.push(Packet::Tick); - if new_game { + if let Some(winner) = new_game { + events.push(Packet::Win(winner.unwrap_or(u32::MAX) as usize, 0)); // TODO packet misuse sstate.past_events.write().await.clear(); events.push(Packet::Game { my_id: 0, |