diff --git a/packages/server/src/rooms.ts b/packages/server/src/rooms.ts index e7e6da2..3961758 100644 --- a/packages/server/src/rooms.ts +++ b/packages/server/src/rooms.ts @@ -294,6 +294,8 @@ export function joinRoom( const fresh = randomBytes(16).toString("hex"); room.players.push(playerId); room.tokens.set(playerId, hashToken(fresh)); + // An expected wizard who sits is expected no longer. + if (room.expected?.includes(playerId)) room.expected = room.expected.filter((n) => n !== playerId); appendLine(room.id, { kind: "join", name: playerId, tokenHash: hashToken(fresh) }); recordRoom(room); return { token: fresh }; @@ -816,6 +818,7 @@ function rebuildRoom(id: string, lines: RoomLine[]): Room | null { if (!joinHash) throw new Error("join line has no token"); room.players.push(line.name); room.tokens.set(line.name, joinHash); + if (room.expected?.includes(line.name)) room.expected = room.expected.filter((n) => n !== line.name); } } else if (line.kind === "start") { const r = startInMemory(room, line.expansion, line.colors, line.deckRev);