From d46ba47c631f1f52970c525baf11b481f6d2296d Mon Sep 17 00:00:00 2001 From: tolelom <98kimsungmin@naver.com> Date: Sun, 22 Mar 2026 18:54:13 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=8C=8C=ED=8B=B0=20=EC=9D=B8=EC=9B=90?= =?UTF-8?q?=20=EA=B8=B0=EB=B0=98=20MaxPlayers=20=EC=84=A4=EC=A0=95=20+=20v?= =?UTF-8?q?alidate-entry=EC=97=90=20expectedPlayers=20=EC=9D=91=EB=8B=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - RequestEntry에서 MaxPlayers를 len(usernames)로 설정 (기존 고정 3 → 동적) - ValidateEntryToken 응답에 expectedPlayers 필드 추가 - 데디 서버가 파티 크기만큼 접속 시 레이드 시작 가능 Co-Authored-By: Claude Opus 4.6 --- internal/bossraid/handler.go | 14 +++++++++++--- internal/bossraid/service.go | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/internal/bossraid/handler.go b/internal/bossraid/handler.go index 3c62670..8e20324 100644 --- a/internal/bossraid/handler.go +++ b/internal/bossraid/handler.go @@ -207,10 +207,18 @@ func (h *Handler) ValidateEntryToken(c *fiber.Ctx) error { return apperror.Unauthorized(err.Error()) } + // 방 정보에서 파티 인원 수 조회 + expectedPlayers := 0 + room, roomErr := h.svc.GetRoom(sessionName) + if roomErr == nil && room != nil { + expectedPlayers = room.MaxPlayers + } + return c.JSON(fiber.Map{ - "valid": true, - "username": username, - "sessionName": sessionName, + "valid": true, + "username": username, + "sessionName": sessionName, + "expectedPlayers": expectedPlayers, }) } diff --git a/internal/bossraid/service.go b/internal/bossraid/service.go index 5d0e56b..5dbe579 100644 --- a/internal/bossraid/service.go +++ b/internal/bossraid/service.go @@ -110,7 +110,7 @@ func (s *Service) RequestEntry(usernames []string, bossID int) (*BossRoom, error SessionName: slot.SessionName, BossID: bossID, Status: StatusWaiting, - MaxPlayers: defaultMaxPlayers, + MaxPlayers: len(usernames), Players: string(playersJSON), } if err := txRepo.Create(room); err != nil {