aboutsummaryrefslogtreecommitdiff
path: root/src/spectate/server.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-06-04 21:53:00 +0200
committermetamuffin <metamuffin@disroot.org>2024-06-04 21:53:00 +0200
commitd50cbd513c7208cb2a5c13571a964544b9470017 (patch)
tree1d6e19928713d592b01bf1652285c49789f32051 /src/spectate/server.rs
parent5063701929569fe37ca4b8659bd52981f8e7b77c (diff)
downloadgpn-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.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,