diff options
author | metamuffin <metamuffin@disroot.org> | 2024-06-04 21:53:00 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-06-04 21:53:00 +0200 |
commit | d50cbd513c7208cb2a5c13571a964544b9470017 (patch) | |
tree | 1d6e19928713d592b01bf1652285c49789f32051 /src/spectate/server.rs | |
parent | 5063701929569fe37ca4b8659bd52981f8e7b77c (diff) | |
download | gpn-tron-rust-d50cbd513c7208cb2a5c13571a964544b9470017.tar gpn-tron-rust-d50cbd513c7208cb2a5c13571a964544b9470017.tar.bz2 gpn-tron-rust-d50cbd513c7208cb2a5c13571a964544b9470017.tar.zst |
show chat and winners
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, |