feat : 보스 응답 메시지 문제 수정

This commit is contained in:
qornwh1
2026-03-17 09:15:41 +09:00
parent 39ef81d48a
commit f8fa34edbc
3 changed files with 48 additions and 13 deletions

View File

@@ -4,10 +4,39 @@ namespace MMOserver.Api;
// API 응답(BossRaidAccessResponse)을 직접 노출하지 않고 이걸로 매핑해서 반환 // API 응답(BossRaidAccessResponse)을 직접 노출하지 않고 이걸로 매핑해서 반환
public sealed class BossRaidResult public sealed class BossRaidResult
{ {
public int RoomId { get; init; } public int RoomId
public string SessionName { get; init; } = string.Empty; {
public int BossId { get; init; } get;
public List<string> Players { get; init; } = new(); init;
public string Status { get; init; } = string.Empty; }
public string? Tokens { get; init; }
public string SessionName
{
get;
init;
} = string.Empty;
public int BossId
{
get;
init;
}
public List<string> Players
{
get;
init;
} = new();
public string Status
{
get;
init;
} = string.Empty;
public Dictionary<string, string> Tokens
{
get;
init;
} = new();
} }

View File

@@ -79,7 +79,7 @@ public class RestApi : Singleton<RestApi>
{ {
try try
{ {
HttpResponseMessage response = await httpClient.PostAsJsonAsync(url, new { usernames = userNames, bossId }); HttpResponseMessage response = await httpClient.PostAsJsonAsync(url, new { usernames = userNames, bossId = bossId });
// 401: API 키 인증 실패 // 401: API 키 인증 실패
if (response.StatusCode == HttpStatusCode.Unauthorized) if (response.StatusCode == HttpStatusCode.Unauthorized)
@@ -166,10 +166,10 @@ public class RestApi : Singleton<RestApi>
} }
[JsonPropertyName("tokens")] [JsonPropertyName("tokens")]
public string? Tokens public Dictionary<string, string> Tokens
{ {
get; get;
set; set;
} } = new();
} }
} }

View File

@@ -1144,10 +1144,16 @@ public class GameServer : ServerBase
SendTo(memberPeer, PacketSerializer.Serialize((ushort)PacketCode.CHANGE_MAP, response)); SendTo(memberPeer, PacketSerializer.Serialize((ushort)PacketCode.CHANGE_MAP, response));
// 모두에게 레이드로 이동 (할당된 실제 레이드 맵 ID 전달) // 모두에게 레이드로 이동 (할당된 실제 레이드 맵 ID 전달)
SendTo(peer, if (result.Tokens.ContainsKey(memberPlayer.Nickname.Trim()))
PacketSerializer.Serialize((ushort)PacketCode.INTO_BOSS_RAID, {
new IntoBossRaidPacket SendTo(peer,
{ RaidId = assignedRaidMapId, IsSuccess = true, Session = result.SessionName, Token = result.Tokens })); PacketSerializer.Serialize((ushort)PacketCode.INTO_BOSS_RAID,
new IntoBossRaidPacket
{
RaidId = assignedRaidMapId, IsSuccess = true, Session = result.SessionName,
Token = result.Tokens[memberPlayer.Nickname.Trim()]
}));
}
} }
Log.Debug("[GameServer] INTO_BOSS_RAID HashKey={Key} PartyId={PartyId} AssignedRaidMapId={RaidId}", hashKey, party.PartyId, Log.Debug("[GameServer] INTO_BOSS_RAID HashKey={Key} PartyId={PartyId} AssignedRaidMapId={RaidId}", hashKey, party.PartyId,