aboutsummaryrefslogtreecommitdiff
path: root/src/spectate/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/spectate/server.rs')
-rw-r--r--src/spectate/server.rs6
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,