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.GetBlockListReq), typeof(GetBlockUsersPacketHandler), typeof(GameLoginListener))] public class GetBlockUsersPacketHandler : PacketRecvHandler { public override async Task onProcessPacket(ISession session, IMessage recvMessage) { var owner = session as Player; NullReferenceCheckHelper.throwIfNull(owner, () => "player is null !!!"); var my_guid = owner.getUserGuid(); var recv_msg = recvMessage as ClientToGame; ArgumentNullReferenceCheckHelper.throwIfNull(recv_msg, () => $"recvMessage is null !!! - player:{owner.toBasicString()}"); var request = recv_msg.Request.GetBlockListReq; var user_block_action = owner.getEntityAction(); var result = await user_block_action.loadBlockUsers(); var block_users = await user_block_action.getBlockUsersInfoProtoBuf(); send_GS2C_ACK_GET_BLOCK_USERS(owner, block_users, result); return result; } public static Result send_GS2C_ACK_GET_BLOCK_USERS(Player owner, List blockInfos, Result result) { var ack_packet = new ClientToGame(); ack_packet.Response = new ClientToGameRes(); ack_packet.Response.ErrorCode = result.ErrorCode; ack_packet.Response.GetBlockListRes = new (); ack_packet.Response.GetBlockListRes.BlockList.AddRange(blockInfos); if (false == GameServerApp.getServerLogic().onSendPacket(owner, ack_packet)) { string err_msg = $"send_GS2C_ACK_GET_BLOCK_USERS Fail !!! : owner:{owner.toBasicString()}"; result.setFail(ServerErrorCode.ProudNetException, err_msg); Log.getLogger().error(result.toBasicString()); return result; } return result; } }