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.FriendDeleteNoti), typeof(NtfFriendDeleteMQPacketHandler), typeof(RabbitMQ4Game))] public class NtfFriendDeleteMQPacketHandler : PacketRecvHandler { public override async Task onProcessPacket(ISession session, IMessage recvMessage) { var msg = recvMessage as ServerMessage; ArgumentNullException.ThrowIfNull(msg); //유저 데이터에서 삭제 처리 var player_manager = GameServerApp.getServerLogic().getPlayerManager(); ArgumentNullException.ThrowIfNull(player_manager); var result = new Result(); if (false == player_manager.tryGetUserByPrimaryKey(msg.FriendDeleteNoti.ReceiverGuid, out var player)) { var err_msg = $"{msg.FriendDeleteNoti.ReceiverGuid} user not exist this Server"; result.setFail(ServerErrorCode.UserNotLogin, err_msg); Log.getLogger().warn(result.toBasicString()); return result; } var friend_agent_action = player.getEntityAction(); //친구 메모리에서 삭제 friend_agent_action.deleteFriend(msg.FriendDeleteNoti.SenderGuid); var handler = new NotifyFriendDeleteHandler(); handler.send_GS2C_NTF_FRIEND_DELETE(msg.FriendDeleteNoti); return await Task.FromResult(result); } }