diff options
Diffstat (limited to 'src/spectate')
-rw-r--r-- | src/spectate/main.ts | 6 | ||||
-rw-r--r-- | src/spectate/server.rs | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/spectate/main.ts b/src/spectate/main.ts index 2f6de83..b92e5be 100644 --- a/src/spectate/main.ts +++ b/src/spectate/main.ts @@ -8,7 +8,7 @@ type Packet = "tick" | { player: { id: number, name: string } } | { die: number[] } | { win: [number, number] } - | { chat: string } + | { message: { id: number, message: string } } class Snake { parts: { x: number, y: number, dx: number, dy: number }[] = [] @@ -149,8 +149,8 @@ ws.onmessage = message => { const s = snakes.get(d) if (s) s.dead = true } - } else if ("chat" in p) { - chat(p.chat) + } else if ("message" in p) { + chat(`${snakes.get(p.message.id)?.name}: ${p.message.message}`) } } diff --git a/src/spectate/server.rs b/src/spectate/server.rs index 0c2af1d..fdcc815 100644 --- a/src/spectate/server.rs +++ b/src/spectate/server.rs @@ -135,7 +135,10 @@ async fn stats( async fn chat_broadcaster(sstate: Arc<SpectateState>, state: Arc<State>) { let mut messages = state.chat.subscribe(); while let Ok((author, message)) = messages.recv().await { - let p = Packet::Chat(format!("{author}: {message}")); + let p = Packet::Message { + id: author, + message: format!("{author}: {message}"), + }; sstate.past_events.write().await.push(p.clone()); let _ = sstate.events.send(p); } |