From 77a423fd6ab76c6bf0f957b73759c7bd564ec984 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 31 Jul 2021 00:46:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E6=94=BE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...GetWorldArenaRecordInfoRequestHandler.java | 7 +++- .../gtw/GetWorldArenaReplayHandler.java | 42 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaReplayHandler.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaRecordInfoRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaRecordInfoRequestHandler.java index 98b46669b..5cad703e1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaRecordInfoRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaRecordInfoRequestHandler.java @@ -17,6 +17,7 @@ import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.MessageUtil; import config.SGlobalSystemConfig; import manager.STableManager; +import rpc.protocols.CommonProto; import rpc.protocols.MessageTypeProto; import rpc.world.WorldProto; @@ -56,7 +57,11 @@ public class GetWorldArenaRecordInfoRequestHandler extends BaseHandler arenaRecordList = new ArrayList<>(result.values()); List collect = arenaRecordList.stream().map(bytes -> {try { - return WorldProto.WroldBattleRecord.parseFrom(bytes); + WorldProto.WroldBattleRecord wroldBattleRecord = WorldProto.WroldBattleRecord.parseFrom(bytes); + //此处不把数据给前端,避免数据过大 + wroldBattleRecord = wroldBattleRecord.toBuilder().setFightData(CommonProto.FightData.newBuilder()).build(); + + return wroldBattleRecord; }catch (Exception e){} return null; }).collect(Collectors.toList()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaReplayHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaReplayHandler.java new file mode 100644 index 000000000..817f4a9fd --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaReplayHandler.java @@ -0,0 +1,42 @@ +package com.ljsd.jieling.handler.gtw; + +import com.ljsd.jieling.db.redis.RedisKey; +import com.ljsd.jieling.db.redis.RedisUtil; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.MessageUtil; +import rpc.protocols.CommonProto; +import rpc.protocols.MessageTypeProto; +import rpc.world.WorldProto; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author lvxinran + * @date 2021/7/31 + * @discribe + */ +public class GetWorldArenaReplayHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.ReplayWorldArenaRequest; + } + + @Override + public void processWithProto(ISession iSession, WorldProto.ReplayWorldArenaRequest proto) throws Exception { + byte[] result = RedisUtil.getInstence().getMapEntry(RedisKey.WORLD_ARENA_RRECORD, Integer.toString(iSession.getUid()),proto.getFightId(), byte[].class); + + if (result != null) { + WorldProto.WroldBattleRecord wroldBattleRecord = WorldProto.WroldBattleRecord.parseFrom(result); + WorldProto.ReplayWorldArenaResponse response = WorldProto.ReplayWorldArenaResponse.newBuilder().setFightData(wroldBattleRecord.getFightData()).build(); + MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.ReplayWorldArenaResponse.getNumber(),response,true); + }else{ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + + + } +}