Files
caliverse_server/GameServer/MessageQueue/PacketHandler/NtfLoginToFriendMQPacketHandler.cs
2025-05-01 07:20:41 +09:00

48 lines
1.5 KiB
C#

using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace GameServer.PacketHandler;
[PacketHandler("", typeof(ServerMessage.Types.LoginNotiToFriend), typeof(NtfLoginToFriendMQPacketHandler), typeof(RabbitMQ4Game))]
public class NtfLoginToFriendMQPacketHandler : PacketRecvHandler
{
public override async Task<Result> onProcessPacket(ISession session, IMessage recvMessage)
{
var msg = recvMessage as ServerMessage;
ArgumentNullException.ThrowIfNull(msg);
var handler = new NotifyFriendLoginHandler();
var player_manager = GameServerApp.getServerLogic().getPlayerManager();
ArgumentNullException.ThrowIfNull(player_manager);
var result = new Result();
if (false == player_manager.tryGetUserByPrimaryKey(msg.LoginNotiToFriend.BaseInfo.ReceiverGuid, out var player))
{
var err_msg = $"{msg.LoginNotiToFriend.BaseInfo.SenderGuid} user not exist this Server";
result.setFail(ServerErrorCode.UserNotLogin, err_msg);
Log.getLogger().warn(result.toBasicString());
return result;
}
handler.send_GS2C_NTF_LOGIN_TO_FRIEND(player, msg.LoginNotiToFriend);
//상대방에게 내 상태 정보 알려주기
await player.send_GS2CS_NTF_STATE_TO_FRIEND(msg.LoginNotiToFriend.BaseInfo.SenderGuid);
return result;
}
}