초기커밋
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
using Google.Protobuf;
|
||||
|
||||
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
using ServerCommon;
|
||||
|
||||
|
||||
using static ClientToGameRes.Types;
|
||||
|
||||
|
||||
namespace GameServer.PacketHandler
|
||||
{
|
||||
[PacketHandler(typeof(ClientToGameReq), typeof(ClientToGameReq.Types.C2GS_REQ_AICHAT_AUTH), typeof(AIChatAuthPacketHandler), typeof(GameLoginListener))]
|
||||
public class AIChatAuthPacketHandler : PacketRecvHandler
|
||||
{
|
||||
public static bool send_S2C_ACK_AICHAT_AUTH(Player player, Result result, string? jwt = null, int leftTime = 0)
|
||||
{
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var ack_packet = new ClientToGame();
|
||||
ack_packet.Response = new ClientToGameRes();
|
||||
|
||||
ack_packet.Response.ErrorCode = result.ErrorCode;
|
||||
ack_packet.Response.AckAIChatAuth = new GS2C_ACK_AICHAT_AUTH();
|
||||
ack_packet.Response.AckAIChatAuth.Jwt = jwt ?? string.Empty;
|
||||
ack_packet.Response.AckAIChatAuth.LeftTime = leftTime;
|
||||
|
||||
if (false == GameServerApp.getServerLogic().onSendPacket(player, ack_packet))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override async Task<Result> onProcessPacket(ISession entityWithSession, IMessage recvMessage)
|
||||
{
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var player = entityWithSession as Player;
|
||||
NullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
|
||||
|
||||
var player_action = player.getEntityAction<PlayerAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(player_action, () => $"player_action is null !!! - {player.toBasicString()}");
|
||||
|
||||
var ai_chat_action = player.getEntityAction<AIChatAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(ai_chat_action, () => $"ai_chat_action is null !!! - {player.toBasicString()}");
|
||||
|
||||
(result, var jwt) = await ai_chat_action.jwtIssue(player.getUserGuid());
|
||||
if(result.ErrorCode == ServerErrorCode.AiChatServerUserNotFound)
|
||||
{
|
||||
result = await ai_chat_action.registerUser(player.getUserGuid(), player.getUserNickname());
|
||||
if (result.isFail())
|
||||
{
|
||||
err_msg = $"Failed Register User : {player.getUserGuid()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
send_S2C_ACK_AICHAT_AUTH(player, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
(result, jwt) = await ai_chat_action.jwtIssue(player.getUserGuid());
|
||||
}
|
||||
|
||||
if(result.isFail() || string.IsNullOrEmpty(jwt))
|
||||
{
|
||||
send_S2C_ACK_AICHAT_AUTH(player, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
(result, var jwtInfo) = await ai_chat_action.jwtverify(jwt);
|
||||
if (result.isFail() || jwt == null)
|
||||
{
|
||||
send_S2C_ACK_AICHAT_AUTH(player, result);
|
||||
return result;
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(jwtInfo, () => $"jwtInfo is null !!");
|
||||
|
||||
send_S2C_ACK_AICHAT_AUTH(player, result, jwt, jwtInfo.exp - jwtInfo.iat);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override async Task onProcessPacketException(ISession entityWithSession, IMessage recvMessage
|
||||
, Result errorResult)
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
|
||||
var player = entityWithSession as Player;
|
||||
NullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!! - {entityWithSession.toBasicString()}");
|
||||
|
||||
send_S2C_ACK_AICHAT_AUTH(player, errorResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user