回放修改

lvxinran 2021-07-31 00:46:14 +08:00
parent 94f9847844
commit 77a423fd6a
2 changed files with 48 additions and 1 deletions

View File

@ -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<WorldProt
if (result != null && !result.isEmpty()) {
List< byte[]> arenaRecordList = new ArrayList<>(result.values());
List<WorldProto.WroldBattleRecord> 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());

View File

@ -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<WorldProto.ReplayWorldArenaRequest> {
@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);
}
}
}