aboutsummaryrefslogtreecommitdiff
path: root/src/spectate
diff options
context:
space:
mode:
Diffstat (limited to 'src/spectate')
-rw-r--r--src/spectate/main.ts6
-rw-r--r--src/spectate/server.rs5
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);
}