Files
gomoku/server
tiennm99 6434fccb0d fix(client): correct RoomCreateSuccess field names and track roomId
Two stacked bugs in the client's room-creation path:

1. menu-scene._onRoomCreateSuccess read `data.ownerNickname` but the
   proto field is `room_owner` (pbjs camelCase: `roomOwner`). The
   waiting room showed an empty owner name after clicking Create Room.

2. game-state-service had no handler at all for ROOM_CREATE_SUCCESS.
   After creating a room, gameState.roomId stayed at whatever value
   the previous CLIENT_EXIT left (null). The waiting room panel
   displayed "Room ID: " (empty) until another player joined and
   triggered ROOM_JOIN_SUCCESS. Also broke any code path that relies
   on roomId between Create and Join.

Fix:
- menu-scene: read data.roomOwner (the actual proto field name);
  updated JSDoc to document all three proto fields (id, roomOwner,
  roomType).
- game-state-service: add a ROOM_CREATE_SUCCESS listener that sets
  roomId from data.id (the proto field is `id`, not `roomId`, for
  RoomCreateSuccessResponse).

Server-side flow tests added in a separate commit (a350636) prove
the server correctly allows create-after-pvp in every permutation
(direct leave, rematch→leave, opponent forfeit). The reported "can
not create room after pvp" symptom matches the field-name bug above:
the waiting room did render, but with blank identifying info, so it
was easy to mistake for "nothing happened".

npm run build green.
2026-04-11 17:46:47 +07:00
..