초기커밋

This commit is contained in:
2025-05-01 07:20:41 +09:00
commit 98bb2e3c5c
2747 changed files with 646947 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_FIND_NPC), typeof(FindUgqNpcPacketHandler), typeof(GameLoginListener))]
public class FindUgqNpcPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var result = new Result();
var player = session as Player;
NullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
NullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var owner_guid = req_msg.Request.ReqUgqFindNpc.OwnerGuid;
var ugq_npc_meta_guid = req_msg.Request.ReqUgqFindNpc.NpcGuid;
(result, var npc_attrib) = await UgcNpcDoc.findUgcNpc(owner_guid, ugq_npc_meta_guid);
send_GS2C_ACK_UGQ_FIND_NPC(player, result, npc_attrib);
return result;
}
public static Result send_GS2C_ACK_UGQ_FIND_NPC(Player player, Result result, UgcNpcAttrib? npcAttrib)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqFindNpc= new();
if (npcAttrib is not null)
{
ack_packet.Response.AckUgqFindNpc.UgcNpc = UgqMetaHelper.copyToUgcNpc(npcAttrib);
}
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_FIND_NPC Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,72 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_PAGED_UGQ_FROM_BOARD), typeof(PagedUgqsFromBoardPacketHandler), typeof(GameLoginListener))]
public class PagedUgqsFromBoardPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var result = new Result();
var player = session as Player;
NullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullException.ThrowIfNull(req_msg);
var request = req_msg.Request.ReqPagedUgqFromBoard;
var search_category_type = request.SearchCategoryType;
var sort_type = request.SortType;
var page_number = request.PageNumber;
var ugq_action = player.getEntityAction<UgqInfoAction>();
ArgumentNullException.ThrowIfNull(ugq_action);
(result, var ugq_board_search_result) = await ugq_action.getPagedUgqFromBoard(search_category_type, sort_type, page_number, searchText:"", searchType:UgqSearchType.Title);
if (result.isFail())
{
send_GS2C_ACK_PAGED_UGQ_FROM_BOARD(player, result);
return result;
}
NullReferenceCheckHelper.throwIfNull(ugq_board_search_result, () => $"ugq_board_search_result is null !!!");
result = send_GS2C_ACK_PAGED_UGQ_FROM_BOARD(player, result, ugq_board_search_result);
return result;
}
public static Result send_GS2C_ACK_PAGED_UGQ_FROM_BOARD(Player player, Result result, UgqBoardSearchResult? ugqBoardSearchResult = null)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckPagedUGQFromBoard = new();
if(null != ugqBoardSearchResult)
{
ack_packet.Response.AckPagedUGQFromBoard.UgqBoardSearchResult = ugqBoardSearchResult;
}
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_C2GS_REQ_PAGED_UGQ_FROM_BOARD Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,72 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_SEARCHED_UGQ_FROM_BOARD), typeof(SearchedUgqsFromBoardPacketHandler), typeof(GameLoginListener))]
public class SearchedUgqsFromBoardPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
NullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
NullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqSearchedUgqFromBoard;
var search_category_type = request.SearchCategoryType;
var sort_type = request.SortType;
var page_number = request.PageNumber;
var search_text = request.SearchText;
var text_search_type = request.SearchType;
var ugq_action = player.getEntityAction<UgqInfoAction>();
(var result, var ugqs) = await ugq_action.getPagedUgqFromBoard(search_category_type, sort_type, page_number, search_text, text_search_type);
if (result.isFail())
{
send_GS2C_ACK_SEARCHED_UGQ_FROM_BOARD(player, result);
return result;
}
result = send_GS2C_ACK_SEARCHED_UGQ_FROM_BOARD(player, result, ugqs);
return result;
}
public static Result send_GS2C_ACK_SEARCHED_UGQ_FROM_BOARD(Player player, Result result, UgqBoardSearchResult? ugqs = null)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckSearchedUGQFromBoard = new();
if (null != ugqs)
{
ack_packet.Response.AckSearchedUGQFromBoard.UgqBoardSearchResult = ugqs;
}
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_SEARCHED_UGQ_FROM_BOARD Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,65 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_ABORT_BY_SELF), typeof(UgqAbortBySelfPacketHandler), typeof(GameLoginListener))]
public class UgqAbortBySelfPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqAbortBySelf;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(request.ComposedQuestId);
var ugq_abort_action = player.getEntityAction<UgqAbortAction>();
NullReferenceCheckHelper.throwIfNull(ugq_abort_action, () => $"ugq_abort_action is null !!! - {player.toBasicString()}");
var result = await ugq_abort_action.ugqAbortBySelf(quest_id, quest_revision);
if (result.isFail())
{
send_GS2C_ACK_UGQ_ABORT_BY_SELF(player, request.ComposedQuestId, result);
return result;
}
result = send_GS2C_ACK_UGQ_ABORT_BY_SELF(player, request.ComposedQuestId, result);
return result;
}
public static Result send_GS2C_ACK_UGQ_ABORT_BY_SELF(Player player, long composedQuestId, Result result)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqAbortBySelf = new();
ack_packet.Response.AckUgqAbortBySelf.ComposedQuestId = composedQuestId;
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_ABORT Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,66 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_ABORT), typeof(UgqAbortPacketHandler), typeof(GameLoginListener))]
public class UgqAbortPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqAbort;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(request.ComposedQuestId);
var ugq_abort_action = player.getEntityAction<UgqAbortAction>();
var result = await ugq_abort_action.ugqAbort(quest_id, quest_revision);
if (result.isFail())
{
send_GS2C_ACK_UGQ_ABORT(player, request.ComposedQuestId, result);
return result;
}
result = send_GS2C_ACK_UGQ_ABORT(player, request.ComposedQuestId, result);
return result;
}
public static Result send_GS2C_ACK_UGQ_ABORT(Player player, long composeQuestId, Result result)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqAbort = new();
ack_packet.Response.AckUgqAbort.ComposedQuestId = composeQuestId;
//삭제된 퀘스트 정보 보내줘야된다. 여기다가 보내던가 Noti를 보내던가
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_ABORT Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,66 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_ASSIGN), typeof(UgqAssignPacketHandler), typeof(GameLoginListener))]
public class UgqAssignPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqAssign;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(request.ComposedQuestId);
var ugq_assign_action = player.getEntityAction<UgqAssignAction>();
NullReferenceCheckHelper.throwIfNull(ugq_assign_action, () => $"ugq_assign_action is null !!! - {player.toBasicString()}");
(var result, var ack) = await ugq_assign_action.ugqAssign(quest_id, quest_revision);
if (result.isFail())
{
send_GS2C_ACK_UGQ_ASSIGN(player, result, ack);
return result;
}
result = send_GS2C_ACK_UGQ_ASSIGN(player, result, ack);
return result;
}
public static Result send_GS2C_ACK_UGQ_ASSIGN(Player player, Result result, ClientToGameRes.Types.GS2C_ACK_UGQ_ASSIGN ack)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqAssign = ack;
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_ASSIGN Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,75 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
using static ClientToGameRes.Types;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_DEREGISTER_BOOKMARK), typeof(UgqDeregisterBookmarkPacketHandler), typeof(GameLoginListener))]
public class UgqDeregisterBookmarkPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqDeregisterBookmark;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(request.ComposedQuestId);
var ugq_action = player.getEntityAction<UgqInfoAction>();
NullReferenceCheckHelper.throwIfNull(ugq_action, () => $"ugq_action is null !!! - {player.toBasicString()}");
var result = await ugq_action.ugqDeregisterBookmark(quest_id);
if (result.isFail())
{
send_GS2C_ACK_UGQ_DEREGISTER_BOOKMARK(player, result);
return result;
}
result = send_GS2C_ACK_UGQ_DEREGISTER_BOOKMARK(player, result);
var invokers = new List<ILogInvoker>();
invokers.Add(new UgqDeregisterBookmarkBusinessLog(quest_id, quest_revision));
var log_action = new LogActionEx(LogActionType.UgqDeregisterBookmark);
BusinessLogger.collectLogs(log_action, player, invokers);
return result;
}
public static Result send_GS2C_ACK_UGQ_DEREGISTER_BOOKMARK(Player player, Result result)
{
var ack_packet = new ClientToGame();
ack_packet.Response = new ClientToGameRes();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqDeregisterBookmark = new GS2C_ACK_UGQ_DEREGISTER_BOOKMARK();
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_DEREGISTER_BOOKMARK Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,68 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_DEREGISTER_LIKE), typeof(UgqDeregisterLikePacketHandler), typeof(GameLoginListener))]
public class UgqDeregisterLikePacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqDeregisterLike;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(request.ComposedQuestId);
var ugq_action = player.getEntityAction<UgqInfoAction>();
NullReferenceCheckHelper.throwIfNull(ugq_action, () => $"ugq_action is null !!! - {player.toBasicString()}");
var result = await ugq_action.ugqDeregisterLike(quest_id, quest_revision);
if (result.isFail())
{
send_GS2C_ACK_UGQ_DEREGISTER_LIKE(player, result);
return result;
}
result = send_GS2C_ACK_UGQ_DEREGISTER_LIKE(player, result);
var invokers = new List<ILogInvoker>();
invokers.Add(new UgqDeregisterLikeBusinessLog(quest_id, quest_revision));
var log_action = new LogActionEx(LogActionType.UgqDeregisterLike);
BusinessLogger.collectLogs(log_action, player, invokers);
return result;
}
public static Result send_GS2C_ACK_UGQ_DEREGISTER_LIKE(Player player, Result result)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqDeregisterLike = new();
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_DEREGISTER_LIKE Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,65 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_DETAIL_FROM_BOARD), typeof(UgqDetailFromBoardPacketHandler), typeof(GameLoginListener))]
public class UgqDetailFromBoardPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqDetailFromBoard;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
var ugq_quest_id = request.ComposedQuestId;
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(ugq_quest_id);
var ugq_action = player.getEntityAction<UgqInfoAction>();
NullReferenceCheckHelper.throwIfNull(ugq_action, () => $"ugq_action is null !!! - {player.toBasicString()}");
(var result, var ugq_board_detail) = await ugq_action.getUgqDetailFromBoard(quest_id, quest_revision);
if (result.isFail())
{
send_GS2C_ACK_UGQ_DETAIL_FROM_BOARD(player, result);
return result;
}
ArgumentNullReferenceCheckHelper.throwIfNull(ugq_board_detail, () => $"ugq_board_detail is null !!! - {player.toBasicString()}");
result = send_GS2C_ACK_UGQ_DETAIL_FROM_BOARD(player, result, ugq_board_detail);
return result;
}
public static Result send_GS2C_ACK_UGQ_DETAIL_FROM_BOARD(Player player, Result result, UgqBoardItemDetail? ugqBoardItemDetail = null)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqDetailFromBoard = new();
ack_packet.Response.AckUgqDetailFromBoard.UgqBoardItemDetail = ugqBoardItemDetail;
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_C2GS_REQ_PAGED_UGQ_FROM_BOARD Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,61 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_FROM_NPC), typeof(UgqFromNpcPacketHandler), typeof(GameLoginListener))]
public class UgqFromNpcPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqFromNpc;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
var beacon_guid = request.NpcGuid;
var ugq_action = player.getEntityAction<UgqInfoAction>();
NullReferenceCheckHelper.throwIfNull(ugq_action, () => $"ugq_action is null !!! - {player.toBasicString()}");
//ms5 스펙아웃
(var result, _) = ugq_action.getUgqFromNpc(beacon_guid);
result = send_GS2C_ACK_UGQ_FROM_NPC(player, result);
return await Task.FromResult(result);
}
public static Result send_GS2C_ACK_UGQ_FROM_NPC(Player player, Result result)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqFromNpc = new();
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_FROM_BEACON Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,75 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
using static ClientToGameRes.Types;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_REASSIGN), typeof(UgqReassignPacketHandler), typeof(GameLoginListener))]
public class UgqReassignPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var game_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(game_msg, () => $"game_msg is null !!! - {player.toBasicString()}");
var request = game_msg.Request.ReqUgqReAssign;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(request.ComposedQuestId);
var ugq_assign_action = player.getEntityAction<UgqAssignAction>();
NullReferenceCheckHelper.throwIfNull(ugq_assign_action, () => $"ugq_assign_action is null !!! - {player.toBasicString()}");
(var result, var ack, var new_quest_revision) = await ugq_assign_action.ugqReAssign(quest_id, quest_revision);
if (result.isFail())
{
send_GS2C_ACK_UGQ_REASSIGN(player, result);
return result;
}
result = send_GS2C_ACK_UGQ_REASSIGN(player, result, ack);
await player.send_GS2C_NTF_UGQ(quest_id, new_quest_revision);
return result;
}
public static Result send_GS2C_ACK_UGQ_REASSIGN(Player player, Result result, GS2C_ACK_UGQ_REASSIGN? ack = null)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqReAssign = new();
if (ack is not null)
{
ack_packet.Response.AckUgqReAssign = ack;
}
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_REASSIGN Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,69 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_REGISTER_BOOKMARK), typeof(UgqRegisterBookmarkPacketHandler), typeof(GameLoginListener))]
public class UgqRegisterBookmarkPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqRegisterBookmark;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(request.ComposedQuestId);
var ugq_action = player.getEntityAction<UgqInfoAction>();
NullReferenceCheckHelper.throwIfNull(ugq_action, () => $"ugq_action is null !!! - {player.toBasicString()}");
var result = await ugq_action.ugqRegisterBookmark(quest_id);
if (result.isFail())
{
send_GS2C_ACK_UGQ_REGISTER_BOOKMARK(player, result);
return result;
}
result = send_GS2C_ACK_UGQ_REGISTER_BOOKMARK(player, result);
var invokers = new List<ILogInvoker>();
invokers.Add(new UgqRegisterBookmarkBusinessLog(quest_id, quest_revision));
var log_action = new LogActionEx(LogActionType.UgqRegisterBookmark);
BusinessLogger.collectLogs(log_action, player, invokers);
return result;
}
public static Result send_GS2C_ACK_UGQ_REGISTER_BOOKMARK(Player player, Result result)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqRegisterBookmark = new();
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_REGISTER_BOOKMARK Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,72 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_REGISTER_LIKE), typeof(UgqRegisterLikePacketHandler), typeof(GameLoginListener))]
public class UgqRegisterLikePacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqRegisterLike;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
var ugq_quest_id = request.ComposedQuestId;
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(ugq_quest_id);
var ugq_action = player.getEntityAction<UgqInfoAction>();
NullReferenceCheckHelper.throwIfNull(ugq_action, () => $"ugq_action is null !!! - {player.toBasicString()}");
var result = await ugq_action.ugqRegisterLike(quest_id, quest_revision);
if (result.isFail())
{
send_GS2C_ACK_UGQ_REGISTER_LIKE(player, result);
return result;
}
result = send_GS2C_ACK_UGQ_REGISTER_LIKE(player, result);
var invokers = new List<ILogInvoker>();
invokers.Add(new UgqRegisterLikeBusinessLog(quest_id, quest_revision));
var log_action = new LogActionEx(LogActionType.UgqRegisterLike);
BusinessLogger.collectLogs(log_action, player, invokers);
return result;
}
public static Result send_GS2C_ACK_UGQ_REGISTER_LIKE(Player player, Result result)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqRegisterLike = new();
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_REGISTER_LIKE Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,65 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_RELOAD_STATE), typeof(UgqReloadCurrentStatePacketHandler), typeof(GameLoginListener))]
public class UgqReloadCurrentStatePacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqReloadState;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
var result = new Result();
var ugq_info_action = player.getEntityAction<UgqInfoAction>();
NullReferenceCheckHelper.throwIfNull(ugq_info_action, () => $"ugq_info_action is null !!! - {player.toBasicString()}");
(result, var states) = await ugq_info_action.reloadUgqCurrentState();
if (result.isFail())
{
send_C2GS_REQ_UGQ_RELOAD_STATE(player, result);
return result;
}
result = send_C2GS_REQ_UGQ_RELOAD_STATE(player, result, states);
return result;
}
public static Result send_C2GS_REQ_UGQ_RELOAD_STATE(Player player, Result result, List<UgqCurrentState>? states = null)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqReloadState = new();
if(null != states)
{
ack_packet.Response.AckUgqReloadState.UgqCurrentState.AddRange(states);
}
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_C2GS_REQ_UGQ_RELOAD_STATE Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,69 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_REPORT), typeof(UgqReportPacketHandler), typeof(GameLoginListener))]
public class UgqReportPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqReport;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
var ugq_quest_id = request.ComposedQuestId;
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(ugq_quest_id);
var report_text = request.ReportText;
var ugq_action = player.getEntityAction<UgqInfoAction>();
NullReferenceCheckHelper.throwIfNull(ugq_action, () => $"ugq_action is null !!! - {player.toBasicString()}");
var result = await ugq_action.getUgqReport(quest_id, quest_revision, report_text);
if (result.isFail())
{
send_GS2C_ACK_UGQ_REPORT(player, result);
return result;
}
result = send_GS2C_ACK_UGQ_REPORT(player, result);
var invokers = new List<ILogInvoker>();
invokers.Add(new UgqReportBusinessLog(quest_id, quest_revision, report_text));
var log_action = new LogActionEx(LogActionType.UgqRegisterLike);
BusinessLogger.collectLogs(log_action, player, invokers);
return result;
}
public static Result send_GS2C_ACK_UGQ_REPORT(Player player, Result result)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqReport = new();
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_REPORT Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,59 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_SPOTLIGHT_FROM_BOARD), typeof(UgqSpotlightFromBoardPacketHandler), typeof(GameLoginListener))]
public class UgqSpotlightFromBoardPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var ugq_action = player.getEntityAction<UgqInfoAction>();
NullReferenceCheckHelper.throwIfNull(ugq_action, () => $"ugq_action is null !!! - {player.toBasicString()}");
(var result, var ugq_board_search_result) = await ugq_action.getUgqSpotlightFromBoard();
if (result.isFail())
{
send_GS2C_ACK_UGQ_FROM_BOARD(player, result, new());
return result;
}
NullReferenceCheckHelper.throwIfNull(ugq_board_search_result, () => $"ugq_board_search_result is null !!! - {player.toBasicString()}");
result = send_GS2C_ACK_UGQ_FROM_BOARD(player, result, ugq_board_search_result);
return result;
}
public static Result send_GS2C_ACK_UGQ_FROM_BOARD(Player player, Result result, UgqBoardSportlightResult spotlighthResult)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqSpotlightFromBoard = new();
ack_packet.Response.AckUgqSpotlightFromBoard.SpotlightResult = spotlighthResult;
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_PAGED_UGQ_FROM_BOARD Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,63 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_TEST_ABORT), typeof(UgqTestAbortPacketHandler), typeof(GameLoginListener))]
public class UgqTestAbortPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqTestAbort;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
var ugq_quest_id = request.ComposedQuestId;
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(ugq_quest_id);
var ugq_test_action = player.getEntityAction<UgqTestAction>();
NullReferenceCheckHelper.throwIfNull(ugq_test_action, () => $"ugq_test_action is null !!! - {player.toBasicString()}");
var result = await ugq_test_action.ugqTestAbort(quest_id, quest_revision);
if (result.isFail())
{
send_GS2C_ACK_UGQ_TEST_ABORT(player, result);
return result;
}
result = send_GS2C_ACK_UGQ_TEST_ABORT(player, result);
return result;
}
public static Result send_GS2C_ACK_UGQ_TEST_ABORT(Player player, Result result)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqTestAbort = new();
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_ABORT Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,70 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
using static ClientToGameRes.Types;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_TEST_ASSIGN), typeof(UgqTestAssignPacketHandler), typeof(GameLoginListener))]
public class UgqTestAssignPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, Google.Protobuf.IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqTestAssign;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
var result = new Result();
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(request.ComposedQuestId);
//var ugq_test_action = player.getEntityAction<UgqTestAction>();
//현재 미사용
//(var result, var ack) = await ugq_test_action.ugqTestAssign(quest_id, quest_revision);
//if (result.isFail())
//{
// send_GS2C_ACK_UGQ_TEST_ASSIGN(player, result, null);
// return result;
//}
//result = send_GS2C_ACK_UGQ_TEST_ASSIGN(player, result, ack);
return await Task.FromResult(result);
}
public static Result send_GS2C_ACK_UGQ_TEST_ASSIGN(Player player, Result result, GS2C_ACK_UGQ_TEST_ASSIGN ack)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqTestAssign = ack;
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_TEST_UGQ_ASSIGN Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}

View File

@@ -0,0 +1,65 @@
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_UGQ_TEST_COMPLETE), typeof(UgqTestCompletePacketHandler), typeof(GameLoginListener))]
public class UgqTestCompletePacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var player = session as Player;
ArgumentNullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var req_msg = recvMessage as ClientToGame;
ArgumentNullReferenceCheckHelper.throwIfNull(req_msg, () => $"req_msg is null !!! - {player.toBasicString()}");
var request = req_msg.Request.ReqUgqTestComplete;
ArgumentNullReferenceCheckHelper.throwIfNull(request, () => $"request is null !!! - {player.toBasicString()}");
(var quest_id, var quest_revision) = QuestHelper.convertUgqQuestIdToQuestIdAndRevision(request.ComposedQuestId);
var ugq_test_action = player.getEntityAction<UgqTestAction>();
NullReferenceCheckHelper.throwIfNull(ugq_test_action, () => $"ugq_test_action is null !!! - {player.toBasicString()}");
var result = await ugq_test_action.ugqTestComplete(quest_id, quest_revision);
if (result.isFail())
{
send_GS2C_ACK_UGQ_TEST_COMPLETE(player, result, quest_id, quest_revision);
return result;
}
result = send_GS2C_ACK_UGQ_TEST_COMPLETE(player, result, quest_id, quest_revision);
return result;
}
public static Result send_GS2C_ACK_UGQ_TEST_COMPLETE(Player player, Result result, UInt32 questId, UInt32 questRevision)
{
ClientToGame ack_packet = new();
ack_packet.Response = new();
ack_packet.Response.ErrorCode = result.ErrorCode;
ack_packet.Response.AckUgqTestComplete = new();
ack_packet.Response.AckUgqTestComplete.ComposedQuestId = QuestHelper.convertQuestIdAndRevisionToUgqQuestId(questId, questRevision);
var server_logic = GameServerApp.getServerLogic();
if (false == server_logic.onSendPacket(player, ack_packet))
{
var err_msg = $"send_GS2C_ACK_UGQ_TEST_COMPLETE Fail !!! : owner:{player.toBasicString()}";
result.setFail(ServerErrorCode.ProudNetException, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}