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 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; } }